Ruby on rails 在Windows上通过Ubuntu上的Bash安装时,使用Postgres在Windows 10上安装PgAdmin

Ruby on rails 在Windows上通过Ubuntu上的Bash安装时,使用Postgres在Windows 10上安装PgAdmin,ruby-on-rails,postgresql,windows-10,pgadmin,bash-on-windows,Ruby On Rails,Postgresql,Windows 10,Pgadmin,Bash On Windows,我想在Windows的Ubuntu上安装Rails 5/Postgres 还可以通过访问Postgres数据库 我很高兴在Windows上通过Ubuntu上的Bash安装我所有的rails依赖项,但我知道我无法从Bash运行任何标准GUI工具,我想知道是否可以在Linux子系统上安装rails和PostGres,然后使用Windows版本的PgAdmin查询我的数据库 我看过本教程,但他似乎将Postgres安装到windows而不是Linux子系统中 我想知道这是否是让所有这些工具协同工作的唯

我想在Windows的Ubuntu上安装Rails 5/Postgres 还可以通过访问Postgres数据库

我很高兴在Windows上通过Ubuntu上的Bash安装我所有的rails依赖项,但我知道我无法从Bash运行任何标准GUI工具,我想知道是否可以在Linux子系统上安装rails和PostGres,然后使用Windows版本的PgAdmin查询我的数据库

我看过本教程,但他似乎将Postgres安装到windows而不是Linux子系统中

我想知道这是否是让所有这些工具协同工作的唯一方法


基本上,我希望我的Windows安装的PgAdmin与我的Bash在WindowsPostgres DB

上的Ubuntu上进行通信,Ubuntu有X服务器,您可以在那里运行PgAdmin III GUI(我从未尝试过IV,但非常确定它在linux上会更好)。不过,如果您想在Windows上的某个虚拟机上设置db并使用Windows客户端-是的-它会起作用。你需要在你的虚拟机和Windows主机之间建立一些网桥,就是这样——使用Ubuntu IP连接到Postgres。(您还需要允许在
pg_hba.conf
中进行连接,并将
listen\u address
设置为
*
,但对于外部连接,仍然需要这样做)

以下是我从Windows pgAdmin连接WSL Ubuntu中安装的Postgres DB时所做的操作

  • 在Windows中启动Ubuntu
  • 在Ubuntu终端中启动postgres:
    sudo服务postgresql启动
  • 下载最新版本并在Windows中安装
  • 启动pgAdmin,打开浏览器中的新选项卡;单击添加新服务器链接
  • 在浏览器的弹出式创建-服务器窗口中:
  • 常规选项卡:我将名称设置为localhost
  • 连接选项卡:我将主机名/地址设置为localhost,将密码设置为postgres,这是默认设置,单击
    保存密码?
  • 我保存设置,其余字段保持原样
  • 就是这样,我可以立即看到在Postgres中创建的DB

  • 由@kiatng提供的答案也帮助了我。但是,当我试图访问表中的数据时,我遇到了一个未连接的
    套接字
    错误。通过另一次谷歌搜索,我发现我需要将localhost更改为127.0.0.1,然后才能访问数据。
    
    把这个放在这里,以防万一对别人有帮助。我本来会回答kiatng的回答,但我还没有足够的“声誉”来回答

    如果有人遇到我的问题,请发布帖子

    在我的例子中,连接被拒绝了,我可以通过在postgresql.conf文件中将listen_addresses属性更改为“*”来解决问题

    在ubuntu上查找conf文件

    sudo -u postgres psql -c 'SHOW config_file'
    
    找到文件后,您需要像这样更改侦听地址

    listen_addresses = '*'
    
    然后使用重新启动postgres

    sudo service postgresql restart
    

    在编辑文件之前,您可能需要更改文件的权限,请不要忘记在完成此更改后还原此更改。

    我刚刚了解到,bash for Windows与您的线程一起存在:)也许将令人头痛的问题保存为Windows上的Rails不是一个简单的设置(但仍能完美工作)。。。但是我很好奇地想看看Windows上Bash上的Rails会怎么样(我知道微软,一个额外的层仍然是一个额外的层)@David Cruwys你能理解这个吗?这会反过来吗,也就是说,如果postgres安装在Windows上,我们还能在WSL中访问它(而不是通过pgAdmin)吗,使用say R或Python?我确实从
    localhost
    更改为
    127.0.0.1
    ,但现在出现另一个错误
    致命:用户“postgres”的密码身份验证失败
    。为了在WSL中设置postgres,我遵循并相应地更改了密码。非常感谢!!我重复这些信息以帮助其他人:我的PgAdmin与数据库con wsl2的连接工作正常,但是选择表记录的查询速度非常慢(我没有收到请求的响应),我使用127.0.0.1而不是localhost创建了一个新的服务器连接,请求工作正常!实时的。谢谢!!我爱你haha@PrateekJha我也遇到了同样的问题,我尝试用这些命令更改密码,并尝试在PgAdmin中再次创建db,结果成功了@ChloeSun我通过在postgresql.conf文件中设置allow all connection解决了这个问题。这个答案允许我连接到数据库,但我仍然收到postgres用户的身份验证错误,这个答案为我修复了以下问题: