PostgreSQL无法连接的解决方法

涂红伟, 2022年12月16日 22:59:06

最近准备上线新网站,决定使用PostgreSQL数据库,刚好PostgreSQL发布了PostgreSQL15正式版,对于软件我一直喜欢新版本,自然选择最新版,安装过程很顺利,部署网站代码时却连接不了PostgreSQL。

首先想到的是PostgreSQL有没有在运行,执行命令:

ps -ef | grep postgres 
Image
PostgreSQL无法连接的解决方法

可以看到系统中PostgreSQL的进程在运行。

然后考虑到是不是PostgreSQL默认的5432端口号被占用,接着执行命令:

netstat -lanp|grep 5432
Image
PostgreSQL连接不上的解决方法

端口号正在被PostgreSQL使用,没有问题。

最后发现是因为IPv6导致locahost连接问题,解决方法很简单,PostgreSQL在安装过程自动生成了一个用于客户端认证的配置文件pg_hba.conf,只需要找到这个文件,去掉 host  all   all  ::1/128  trust 前面的注释符号#。

Image
PostgreSQL无法连接的解决方法

如果你的文件没有这行配置,复制下面的添加到pg_hba.conf 然后重启PostgreSQL即可解决。

host    all             all             ::1/128                 trust

2024年8月14日更新

更安全的做法是改成:

host    all             all             ::1/128                 md5

标签