远程访问postgresql数据库

远程访问postgresql数据库

我需要从运行 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

相关内容