沃梦达 / 编程技术 / 数据库 / 正文

postgresql修改完端口后直接psql连接数据库报错的解决

针对“postgresql修改完端口后直接psql连接数据库报错”的解决方案,以下是完整攻略:

针对“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//main/(其中 为 PostgreSQL 版本号)目录下。使用文本编辑器打开 postgresql.conf 文件,找到以下行:

#listen_addresses = 'localhost' 
#port = 5432 

解除注释并将端口号修改成你想要的端口,如下所示:

listen_addresses = '*' 
port = 5433 

保存文件并重启 PostgreSQL 服务以使配置生效:

$ sudo service postgresql restart

这时候我们需要确认一下修改后的端口是否生效。可以再次执行第一步的命令查看对应端口是否变成了我们刚才修改的端口(例如上面的 5433)。

3. 修改 pg_hba.conf 配置

如果以上步骤仍然不能成功连接数据库服务,还需要检查 pg_hba.conf 文件(通常位于 /etc/postgresql//main/ 目录下)中的认证方式是否正确配置。

在该文件中,可以找到以下类似的行:

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连接数据库报错的解决

基础教程推荐