17

我想在 Windows 上的 Ubuntu 上的 Bash中安装 Rails 5/Postgres, 并且还能够通过PgAdmin for Windows访问 Postgres 数据库。

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

我查看了本教程how-to-install-ruby-on-rails-on-windows-10-with-postgresql但似乎他将 Postgres 安装到 Windows 而不是 Linux 子系统中。

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

基本上我希望我的Windows安装的 PgAdmin 与我的Bash On Ubuntu On Windows Postgres DB

4

6 回答 6

25

这是我从 Windows pgAdmin连接安装在 WSL Ubuntu 中的 Postgres DB 所做的。

  1. 在 Windows 中启动 Ubuntu。
  2. 在 Ubuntu 终端中启动 postgres:sudo service postgresql start
  3. 下载最新的pgAdmin并安装在 Windows 中。
  4. 启动 pgAdmin,在浏览器中打开一个新选项卡;单击添加新服务器链接。
  5. 在浏览器中弹出的Create - Server窗口中:
    1. 常规选项卡:我将名称设置为localhost
    2. Connection选项卡:我将Host name/address设置为localhost,将Password设置为postgres,这是默认值,点击Save password?
    3. 我保存设置,其余字段保持原样
  6. 就是这样,我可以立即看到在 Postgres 中创建的数据库。

添加服务器时的浏览器屏幕截图

于 2019-01-15T03:49:13.533 回答
8

@kiatng 提供的答案也帮助了我。但是,socket not connected当我尝试访问表中的数据时出现错误。通过另一个谷歌搜索,我发现我需要将 localhost 更改为 127.0.0.1 ,然后我才能访问数据。只是把它放在这里以防它帮助别人。我会回复 kiatng 的回答,但我还没有足够的“声誉”来这样做!

于 2020-10-01T10:27:19.110 回答
7

发布以防有人遇到我的问题

在我的情况下Connection refused,我能够通过在 postgresql.conf 文件中将 listen_addresses 属性更改为“*”来解决

在 ubuntu 上找到 conf 文件

sudo -u postgres psql -c 'SHOW config_file'

找到文件后,您需要像这样更改listen_addresses

listen_addresses = '*'

然后使用重启 postgres

sudo service postgresql restart

您可能需要先更改文件的权限,然后才能对其进行编辑,完成后不要忘记恢复此更改。

于 2021-03-05T17:05:41.397 回答
1

Ubuntu 有 X 服务器,您可以在其中运行 pgAdmin III GUI(我从未尝试过 IV,但很确定它会在 linux 上运行得更好)。不过,如果您想在 Windows 上的某个虚拟机上设置 db 并使用 Windows 客户端 - 是的 - 它会起作用。您需要在虚拟机和托管 Windows 之间设置一些网桥,仅此而已 - 使用 Ubuntu IP 连接到 Postgres。(您还需要允许连接pg_hba.conf并设置listen_address*,但无论如何都需要为外部连接完成)

于 2017-08-16T08:19:20.310 回答
1

我在 WSL2 上运行 postgresql 时遇到了类似的问题 - bash 并希望从运行在 Windows 上的 pgadmin 进行连接。

以下设置将完成工作(就像对我一样)

在 /etc/postgreql//main/postgresql.conf 中有

listen_addresses = '*'

然后在 /etc/postgreql//main/pg_hba.conf 中有

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
host    all             all             172.0.0.0/8             md5

重启postgresql

sudo service postgresql restart

这允许本地主机访问和 WSL ip 访问。

在您的 pgadmin 中,在连接设置中尝试将 localhost 作为主机设置(通常有效,如果无效,您可以提供通常在 172 范围内的 bash ip)

于 2021-12-28T06:50:12.687 回答
0

第一次运行

sudo -u postgres psql -c 'SHOW config_file'

打开生成的文件,取消注释listen_addresses,并将其更改为:

listen_addresses = '*'`

然后运行

sudo service postgresql restart
于 2021-12-19T18:57:08.330 回答