我需要从运行 12.10 和 postgresql 9.1 的 DigitalOcean VPS 上的远程机器访问 postgresql 数据库。
我该怎么做?我注意到端口 5432 已关闭,我该如何打开它?
答案1
要打开端口 5432,请编辑/etc/postgresql/9.1/main/postgresql.conf
并更改
listen_addresses='localhost'
到
listen_addresses='*'
并重新启动 DBMS
invoke-rc.d postgresql restart
现在您可以连接到
$ psql -h hostname -U username -d database
如果你无法验证自己的身份,则需要授予用户访问数据库的权限
编辑您的
/etc/postgresql/9.1/main/pg_hba.conf
并添加
host all all all md5
(这是为广泛开放而设。如需更严格的控制,请咨询pg_hba.conf 文档并根据您的需要进行调整)。
此后您还需要重新加载
invoke-rc.d postgresql reload
我不需要提及这是一个基本配置,现在您应该考虑修改您的防火墙并提高您的 DBMS 的安全性。
答案2
这不再起作用了,如果它曾经起作用的话:
主机全部全部*md5
正确的可能行如下:
主机全部全部 0.0.0.0/0 md5 #ipv4 范围
主机全部全部::0/0 md5#ipv6 范围
主机全部全部全部md5#所有ip
答案3
对于发生在我身上的消息“服务器未监听”,我没有在存档 postgresql.conf 中删除#,我的意思是:
#listen_addresses='本地主机'
到:
listen_addresses='*'
(对不起我的英语不好)。
答案4
根据配置,需要设置:
在/etc/postgresql/10/main/postgresql.conf
# Connection Settings -
listen_addresses = '*' # what IP address(es) to listen on;
在/etc/postgresql/10/main/pg_hba.conf
# IPv4 local connections:
host all all 0.0.0.0/0 md5
重启服务器:
sudo /etc/init.d/postgresql restart