PostgreSQL:使用 psql 命令远程连接到 Postgres 实例
PostgreSQL: Remotely connecting to Postgres instance using psql command
我想远程连接到 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 连接时,我仍然收到错误
Is the server running on host "" and accepting TCP/IP connections on port 5432?
我做错了什么?
我想通了。
必须在 postgresql.conf
中设置 listen_addresses='*'
以允许来自任何 ip/所有 ip 的传入连接
我使用以下选项解决了这个问题:
- 将您的数据库主机从您的网络团队中列入白名单,以确保您可以访问远程主机
- 安装 postgreSQL 版本 4 或更高版本
- 运行 命令如下:
psql -h <REMOTE HOST> -p <REMOTE PORT> -U <DB_USER> <DB_NAME>
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
下面的步骤
- 打开端口 - 根据您的要求,确保 PSQL 端口对所有远程连接或来自一组特定 IP 的连接开放。 PSQL一般运行在5432端口,可配置,相应暴露相关端口。
- 更新远程服务器 PSQL 配置 - 在
postgresql.conf
文件中设置 listen_addresses = '*'
,一般路径为 /etc/postgresql/psql_version/main/postgresql.conf
- 远程连接 -
psql -U <db_username> -h <IP_address>
- 如果 psql 运行 在远程服务器上的端口不是 5432,请通过添加 -p <port_number>
指定端口
下面加一点-
如果 IP 已映射到域名,您可以通过将 <IP_address>
替换为 <host_name>
来连接。为此,请在 pg_hba.conf
文件
中添加新的连接规则
注-
上面解释的所有内容都可能导致安全问题 - 最佳做法始终是关闭您的 psql 端口,或者只允许 IP 列表通过该端口连接。
请注意,pg_hba.conf 中的“ident”需要客户端上的 运行“ident 服务器”。
我想远程连接到 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 连接时,我仍然收到错误
Is the server running on host "" and accepting TCP/IP connections on port 5432?
我做错了什么?
我想通了。
必须在 postgresql.conf
中设置 listen_addresses='*'
以允许来自任何 ip/所有 ip 的传入连接
我使用以下选项解决了这个问题:
- 将您的数据库主机从您的网络团队中列入白名单,以确保您可以访问远程主机
- 安装 postgreSQL 版本 4 或更高版本
- 运行 命令如下:
psql -h <REMOTE HOST> -p <REMOTE PORT> -U <DB_USER> <DB_NAME>
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
下面的步骤
- 打开端口 - 根据您的要求,确保 PSQL 端口对所有远程连接或来自一组特定 IP 的连接开放。 PSQL一般运行在5432端口,可配置,相应暴露相关端口。
- 更新远程服务器 PSQL 配置 - 在
postgresql.conf
文件中设置listen_addresses = '*'
,一般路径为/etc/postgresql/psql_version/main/postgresql.conf
- 远程连接 -
psql -U <db_username> -h <IP_address>
- 如果 psql 运行 在远程服务器上的端口不是 5432,请通过添加-p <port_number>
指定端口
下面加一点-
如果 IP 已映射到域名,您可以通过将 <IP_address>
替换为 <host_name>
来连接。为此,请在 pg_hba.conf
文件
注- 上面解释的所有内容都可能导致安全问题 - 最佳做法始终是关闭您的 psql 端口,或者只允许 IP 列表通过该端口连接。
请注意,pg_hba.conf 中的“ident”需要客户端上的 运行“ident 服务器”。