我正在尝试在 Ubuntu 机器上设置 PostgreSQL 数据库。我希望能够从远程机器上使用 pgAdmin3 访问它。我该如何设置?
我在 Ubuntu 上安装了 PostgreSQL 数据库,使用:
sudo apt-get install postgresql
在我/etc/postgresql/9.1/main/pg_hba.conf
有我这一行:
host all all all password
所以它应该接受来自所有 IPv4 地址的连接,并且密码应该以明文形式发送(这是出于开发原因)。
如果我运行此命令以查看正在运行的服务:
sudo netstat -tulpn
我可以看到这些行,这表明 PostgreSQL 正在接受默认端口上的连接:
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN
3561/postgres
当我尝试从同一本地网络上的远程计算机连接到此 PostgreSQL 服务器时,我收到以下错误消息:
服务器不听
服务器不接受连接:连接库报告
无法连接到服务器:连接被拒绝 服务器是否在主机“10.0.1.7”上运行并接受端口 5432 上的 TCP/IP 连接?
我用postgres
作用户名,没有密码。但我也尝试过使用postgres
密码。在本地服务器上,我可以使用以下方式登录:
sudo -u postgres psql postgres
如何使用 pgAdmin3 从远程计算机连接到在 Ubuntu 上运行的 PostgreSQL 数据库?
您的 netstat 报告中的行显示数据库仅在 localhost:5432 (127.0.0.1) 上侦听传入的 tcp 连接。
因此,无论您在 pg_hba.conf 中指定了什么权限,它都只能接受本地 tcp 连接。pg_hba.conf 仅指定允许的连接,但没有指定您的服务将侦听的接口。
服务器侦听的地址由postgresql.conf 中的 listen_addresses GUC指定。如果您希望服务器侦听远程连接,您应该指定您希望它侦听或
*
侦听主机上所有可用接口的 ip。要让您的 postgresql 服务器侦听主机上的所有接口,您应该在 postgresql.conf 中有以下行: