PostgreSQL连接报错:Could not connect to server:Connection refused(0x00002740/10061)...

使用Navicat客户端或直接连接PostgreSQL服务器端时,报错:

    Could not connect to server:Connection refused(0x00002740/10061) Is the server running on host “xxx.xxx.xx.xx” and accepting TCP/IP connetions on port 5432?


出现这个原因:


1. 可能无法连接目标主机。 可以使用ping 进行测试。


2. 如何测试通过,而主机未安装PostgreSQL数据库也会导致如此。进入https://www.postgresql.org/download/进行下载安装,上面对不同的系统有不同的安装方式。安装完成后可以使用 service --status-all 看其服务是否已经启动,或者使用sudo su - postgres 作为psql用户操作。这里顺便介绍一下如何创建用户和数据库的。

psql -c "CREATE USER akaros WITH PASSWORD 'akaros'"psql -c "CREATE DATABASE akaros WITH OWNER akaros" exit


3. 如何可以在控制台查看到PostgreSQL的端口5432,说明已经启动。

查看方式:


$ netstat -anp|grep postmaster


4. 当监听的端口都已启动,那很有可能是监听的地址的原因导致的。这样可以修改其配置文件postgresql.conf 。Ubuntu系统默认在/etc/postgresql/版本号/postgresql.conf。 

如果是类似如下的注释。

#listen_addresses = 'localhost'

可以修改为为:

listen_addresses = '*'

然后重启。Ubuntu重启方式:

$ sudo /etc/init.d/postgresql restart

重启完成之后,一般情况下是可以连接了。

5. 如果还不能连接,很有可能是防火墙的原因导致的。

这样可以修改配置文件pg_hba.conf。

# TYPE   DATABASE   USER       ADDRESS     METHOD    

host      all     all       0.0.0.0/0     trust


总之,上述方法应该能解决该问题了。






我认为,每个人都有一个觉醒期,但觉醒的早晚决定个人的命运。

– ——路遥《平凡的世界》
阿卡罗

阿卡罗软件工程师