我想远程连接到Postgres示例。我知道我们可以使用传递主机名的psql命令来实现这一点
我尝试了以下方法:
psql -U postgres -p 5432 -h hostname
我修改了目标机器上的/etc/postgresql/9.3/main/pg_hba.conf文件,以允许默认的远程连接
我在文件中添加了以下行
host all all source_ip/32 trust
我使用以下命令重新启动群集
pg_ctlcluster 9.2 mycluster stop
pg_ctlcluster 9.2 mycluster start
但是,当我尝试从source_ip连接时,仍然得到错误
服务器是否在主机“”上运行并接受端口5432上的TCP/IP连接?
我做错了什么?
6条答案
按热度按时间eivnm1vs1#
我使用以下选项解决了此问题:
1.将您的网络团队的数据库主机列入白名单,以确保您可以访问远程主机
1.安装PostgreSQL版本4或以上
1.运行以下命令:
lmyy7pcs2#
-W
选项将提示输入密码。例如:lymgl2op3#
我想明白了
必须在
postgresql.conf
中设置listen_addresses='*'
,以允许来自任何IP /所有IP的传入连接j5fpnvbx4#
下面的步骤
1.打开端口-确保PSQL端口根据您的要求对所有远程连接或来自特定IP集的连接开放。PSQL通常在端口5432上运行,并且它是可配置的,因此相应地暴露相关端口。
1.更新远程服务器PSQL配置-在
postgresql.conf
文件中设置listen_addresses = '*'
,通常路径为/etc/postgresql/psql_version/main/postgresql.conf
1.远程连接-
psql -U <db_username> -h <IP_address>
-如果psql运行在远程服务器上5432以外的端口上,请通过添加-p <port_number>
来指定端口。如果IP已经Map到域名,您可以通过将
<IP_address>
替换为<host_name>
来连接。为此,请在pg_hba.conf
文件中添加新的连接规则注意-以上所有解释都可能导致安全问题-最佳实践始终是关闭您的psql端口,或者只允许IP列表通过端口连接。
eqfvzcg85#
请注意,pg_hba.conf中的“ident”需要在客户机上运行“ident服务器”。
gj3fmq9x6#
如果你想使用一个
postgres
url,你可以这样做: