针对“postgresql修改完端口后直接psql连接数据库报错”的解决方案,以下是完整攻略:
1. 查看端口
首先,建议使用如下命令查看 postgresql 当前正在使用的端口:
$ sudo netstat -tanpl | grep postgres
上述命令可以列出系统中正在占用端口的进程,若 PostgreSQL 正在运行,应该能看到相应端口(默认为 5432),如图所示:
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 2463/postgres
2. 修改 postgresql.conf 配置
如果需要修改 PostgreSQL 的端口,可以先找到 postgresql.conf 配置文件,通常位于 /etc/postgresql/
#listen_addresses = 'localhost'
#port = 5432
解除注释并将端口号修改成你想要的端口,如下所示:
listen_addresses = '*'
port = 5433
保存文件并重启 PostgreSQL 服务以使配置生效:
$ sudo service postgresql restart
这时候我们需要确认一下修改后的端口是否生效。可以再次执行第一步的命令查看对应端口是否变成了我们刚才修改的端口(例如上面的 5433)。
3. 修改 pg_hba.conf 配置
如果以上步骤仍然不能成功连接数据库服务,还需要检查 pg_hba.conf 文件(通常位于 /etc/postgresql/
在该文件中,可以找到以下类似的行:
host all all 127.0.0.1/32 md5
这一行表示允许来自 127.0.0.1 地址的所有用户以 md5 方式进行认证。如果我们修改了 listen_addresses 配置项为 *,那么可以添加一行类似下面的内容:
host all all 0.0.0.0/0 md5
其中 0.0.0.0/0 表示允许来自任意地址的所有用户连接,需要在此基础上加上正确的用户名和密码。
4. 示例说明
示例 1
假设我们需要将 PostgreSQL 监听的端口修改为 5433。修改完成后,使用以下命令重新启动 PostgreSQL 服务:
$ sudo service postgresql restart
然后执行以下命令检查端口是否修改成功:
$ sudo netstat -tanpl | grep postgres
如果成功修改,应该能看到输出中包含如下行:
tcp 0 0 0.0.0.0:5433 0.0.0.0:* LISTEN 2473/postgres
示例 2
假设我们已经成功将 PostgreSQL 监听的端口修改为 5433,并且在 pg_hba.conf 文件中添加了以下行:
host all all 0.0.0.0/0 md5
现在我们可以使用 psql 命令连接到本地的 PostgreSQL 数据库,具体命令如下:
$ psql -h localhost -p 5433 -U postgres
然后输入 PostgreSQL 的超级用户 postgres 的密码,即可登录到数据库服务器。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:postgresql修改完端口后直接psql连接数据库报错的解决 - Python技术站