PostgreSQL:使用psql命令远程连接到Postgres示例

ki1q1bka  于 2023-05-06  发布在  PostgreSQL
关注(0)|答案(6)|浏览(285)

我想远程连接到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连接?
我做错了什么?

eivnm1vs

eivnm1vs1#

我使用以下选项解决了此问题:
1.将您的网络团队的数据库主机列入白名单,以确保您可以访问远程主机
1.安装PostgreSQL版本4或以上
1.运行以下命令:

psql -h <REMOTE HOST> -p <REMOTE PORT> -U <DB_USER> <DB_NAME>
lmyy7pcs

lmyy7pcs2#

psql -h <IP_Address> -p <port_no> -d <database_name> -U <DB_username> -W

-W选项将提示输入密码。例如:

psql -h 192.168.1.50 -p 5432 -d testdb -U testuser -W
lymgl2op

lymgl2op3#

我想明白了
必须在postgresql.conf中设置listen_addresses='*',以允许来自任何IP /所有IP的传入连接

j5fpnvbx

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列表通过端口连接。

eqfvzcg8

eqfvzcg85#

请注意,pg_hba.conf中的“ident”需要在客户机上运行“ident服务器”。

gj3fmq9x

gj3fmq9x6#

如果你想使用一个postgres url,你可以这样做:

psql postgres://user:password@ip_add_or_domain:port/db_name

相关问题