Windows 上的 PgAdmin 10 和 Postgres 是通过 Bash 在 Ubuntu 上安装的 Windows
PgAdmin on Windows 10 with Postgres when installed via Bash on Ubuntu on Windows
我想在 Bash Ubuntu Windows 内安装 Rails 5/Postgres
并且还能够通过 PgAdmin for Windows.
访问 Postgres 数据库
很高兴通过 Bash 在 Ubuntu 在 Windows 安装我所有的 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 在 Ubuntu 在 [=34] 进行通信=] Postgres 数据库
Ubuntu 有 X 服务器,您可以在其中 运行 pgAdmin III GUI(我从未尝试过 IV,但可以肯定它会在 linux 上运行得更好)。不过,如果您想在 Windows 上的某个虚拟机上设置数据库并使用 Windows 客户端 - 是的 - 它会起作用。您需要在虚拟机和主机 Windows 之间设置一些网桥,仅此而已 - 使用 Ubuntu IP 连接到 Postgres。 (您还需要在 pg_hba.conf
中允许连接并将 listen_address
设置为 *
,但这无论如何都需要为外部连接完成)
这是我从 Windows pgAdmin.
连接 WSL Ubuntu 中安装的 Postgres DB 所做的操作
- 在 Windows 中启动 Ubuntu。
- 在 Ubuntu 终端中启动 postgres:
sudo service postgresql start
- 下载最新的 pgAdmin 并安装在 Windows。
- 启动 pgAdmin,浏览器中的新选项卡打开;单击 添加新服务器 link.
- 在弹出 Create - Server window 浏览器中:
- General 选项卡:我将 Name 设置为 localhost
- Connection 选项卡:我将 Host name/address 设置为 localhost,设置密码到postgres,这是默认的,点击
Save password?
- 我保存设置,其余字段保持原样
- 就是这样,我可以立即看到在 Postgres 中创建的数据库。
@kiatng 提供的答案对我也有帮助。然而,当我试图访问我的表中的数据时,我遇到了 socket not connected
错误。通过另一个 Google 搜索,我发现我需要将 localhost 更改为 127.0.0.1 然后我才能访问数据。
只是把它放在这里以防它帮助别人。我会回复 kiatng 的回答,但我还没有足够的 'reputation' 回复!
发帖以防有人遇到我的问题
在我的例子中,我得到了 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
您可能需要先更改文件的权限才能对其进行编辑,不要忘记在完成后还原此更改。
首先,运行
sudo -u postgres psql -c 'SHOW config_file'
打开生成的文件,取消注释 listen_addresses
,并将其更改为:
listen_addresses = '*'`
然后运行
sudo service postgresql restart
我在 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 作为主机设置(通常有效,如果无效,您可以提供 bash 通常在 172 范围内的 ip)
我想在 Bash Ubuntu Windows 内安装 Rails 5/Postgres 并且还能够通过 PgAdmin for Windows.
访问 Postgres 数据库很高兴通过 Bash 在 Ubuntu 在 Windows 安装我所有的 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 在 Ubuntu 在 [=34] 进行通信=] Postgres 数据库
Ubuntu 有 X 服务器,您可以在其中 运行 pgAdmin III GUI(我从未尝试过 IV,但可以肯定它会在 linux 上运行得更好)。不过,如果您想在 Windows 上的某个虚拟机上设置数据库并使用 Windows 客户端 - 是的 - 它会起作用。您需要在虚拟机和主机 Windows 之间设置一些网桥,仅此而已 - 使用 Ubuntu IP 连接到 Postgres。 (您还需要在 pg_hba.conf
中允许连接并将 listen_address
设置为 *
,但这无论如何都需要为外部连接完成)
这是我从 Windows pgAdmin.
连接 WSL Ubuntu 中安装的 Postgres DB 所做的操作- 在 Windows 中启动 Ubuntu。
- 在 Ubuntu 终端中启动 postgres:
sudo service postgresql start
- 下载最新的 pgAdmin 并安装在 Windows。
- 启动 pgAdmin,浏览器中的新选项卡打开;单击 添加新服务器 link.
- 在弹出 Create - Server window 浏览器中:
- General 选项卡:我将 Name 设置为 localhost
- Connection 选项卡:我将 Host name/address 设置为 localhost,设置密码到postgres,这是默认的,点击
Save password?
- 我保存设置,其余字段保持原样
- 就是这样,我可以立即看到在 Postgres 中创建的数据库。
@kiatng 提供的答案对我也有帮助。然而,当我试图访问我的表中的数据时,我遇到了 socket not connected
错误。通过另一个 Google 搜索,我发现我需要将 localhost 更改为 127.0.0.1 然后我才能访问数据。
只是把它放在这里以防它帮助别人。我会回复 kiatng 的回答,但我还没有足够的 'reputation' 回复!
发帖以防有人遇到我的问题
在我的例子中,我得到了 Connection refused
,我可以通过在 postgresql.conf 文件
在 ubuntu
上找到 conf 文件sudo -u postgres psql -c 'SHOW config_file'
找到文件后,您需要像这样更改listen_addresses
listen_addresses = '*'
然后使用
重启postgressudo service postgresql restart
您可能需要先更改文件的权限才能对其进行编辑,不要忘记在完成后还原此更改。
首先,运行
sudo -u postgres psql -c 'SHOW config_file'
打开生成的文件,取消注释 listen_addresses
,并将其更改为:
listen_addresses = '*'`
然后运行
sudo service postgresql restart
我在 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 作为主机设置(通常有效,如果无效,您可以提供 bash 通常在 172 范围内的 ip)