也许这个问题重复,但我没有得到任何解决方案我使用的是centos 7和Postgres 9.3。 虽然连接PostgreSQL服务器它通过错误,Postgres服务器拒绝连接
错误
拒绝连接在服务器上的主机 “localhost” 的运行(:: 1) 和端口接受TCP/IP连接5432
即使我设置pg_hba.config文件,但我仍得到相同的错误 我试图删除postmaster.pid
,但我得到一个错误no such file and no pid exist
请告诉我解决
也许这个问题重复,但我没有得到任何解决方案我使用的是centos 7和Postgres 9.3。 虽然连接PostgreSQL服务器它通过错误,Postgres服务器拒绝连接
错误
拒绝连接在服务器上的主机 “localhost” 的运行(:: 1) 和端口接受TCP/IP连接5432
即使我设置pg_hba.config文件,但我仍得到相同的错误 我试图删除postmaster.pid
,但我得到一个错误no such file and no pid exist
请告诉我解决
我有同样的问题,我解决了这个与解释:
“野刺在黑暗中:你的机器上一个IPv6
解析器其中localhost
默认的IPv6地址::1
,但在的listen_addresses postgresql.conf
设置为127.0.0.1
或0.0.0.0
而不是*
或者您正在使用一个较旧的PostgreSQL,该库使用的C库不具有透明的IPv6
支持。
变化listen_addresses
到localhost
并确保localhost
解析为两个IPv4
和IPv6
地址,或将其设置为::1
,127.0.0.1
明确指定两个IPv4
和IPv6
。或者只需将其设置为*
即可在所有接口上侦听。另外,如果你不关心IPv6
,连接到127.0.0.1
,而不是localhost
“。
参考链接here。
我觉得thispost
也可以帮助你。
请检查是否防火墙允许连接
如果在Ubuntu上有命令sudo ufw status
结果会是这样的
To Action From
-- ------ ----
22 LIMIT Anywhere
443 ALLOW Anywhere
80 ALLOW Anywhere
8000 ALLOW Anywhere
Nginx Full ALLOW Anywhere
您可以看到端口5432不被允许。
现在运行命令sudo ufw allow 5432/tcp
和 检查UFW状态
sudo ufw status
现在将返回
22 LIMIT Anywhere
443 ALLOW Anywhere
80 ALLOW Anywhere
8000 ALLOW Anywhere
Nginx Full ALLOW Anywhere
5432/tcp ALLOW Anywhere
如果这不起作用,你可能可能还没有允许的IP听Postgres的。
更改listen_address = 'localhost'
到listen_address = '*'
在postgres.conf文件。
在我的机器上listen_addresses设置为*已经 –
请检查一下你的database.yml是否与你的端口相同,默认情况下在我的postgresql-9.2上用5433代替5432,别忘了重启postgres服务器,好运气 –
如果不工作,请参阅我的编辑,这个错误可以用变量形式解决,取决于可以是什么 –