PostgreSQL psql:无法连接到服务器:连接被拒绝
时间:2020-01-09 10:43:04 来源:igfitidea点击:
问题描述:当我尝试连接远程PostgreSQL时,我收到一条错误,内容如下:
psql:无法连接到服务器:连接被拒绝服务器是否在主机host.domain.com上运行并在端口5432上接受TCP/IP连接?
我该如何解决这个问题?
我正在使用CentOS 4.x版本。
解决方法:首先确保PostgreSQL服务器已启动到远程服务器。
# /etc/init.d/postgresql start
如果它正在运行并且出现以上错误,则需要添加启用TCP/IP支持。
默认情况下,PostgreSQL服务器仅允许从本地计算机或者本地主机连接到数据库。
这是一项安全功能。
步骤1:允许远程IP地址访问PostgreSQL
您需要打开名为/var/lib/pgsql/data/pg_hba.conf的文件。
使用su命令以postgres用户身份登录:
$ su - postgres $ vi /var/lib/pgsql/data/pg_hba.conf
现在添加以下行。
假设您要允许访问192.168.1.0/24网络:
host all all 192.168.1.0 255.255.255.0 trust
请替换192.168.1.0和255.255.255.0,以反映您自己网络中客户端系统的实际网络IP地址范围。
保存关闭文件。
步骤2:允许通过TCP/IP进行通信
您需要打开PostgreSQL配置文件/var/lib/pgsql/data/postgresql.conf
$ vi /var/lib/pgsql/data/postgresql.conf
现在,通过将tcpip_socket设置为true来绑定并打开TCP/IP端口:
tcpip_socket = true
保存并关闭文件。
步骤3:重新启动PostgreSQL服务器
使用以下命令重新启动PostgreSQL服务器
# /etc/init.d/postgresql restart
这将打开默认端口5432。
步骤4:测试设置
从客户端系统使用psql命令,如下所示:psql -h PostgreSQL-IP-ADDRESS -U USERNAME -d DATABASENAME
通过IP地址192.168.1.5连接到远程服务器,并使用Hyman用户登录以连接到销售数据库,请使用:
$ psql -h 192.168.1.5 -U Hyman -d sales
其中:
-h 192.168.1.5
:指定运行服务器的机器的主机名或者IP地址(192.168.1.5)。-U Hyman
:以Hyman用户名而不是默认用户名连接到数据库。您必须具有帐户和权限才能以Hyman用户身份进行连接。- -d sales:指定要连接到的数据库的名称。