PostgreSQL新建服务器报错role 'postgres'不存在无法连接求助
PostgreSQL pgAdmin连接报错"role 'postgres' does not exist"解决方案
你可按以下步骤逐一排查解决:
步骤1:确认PostgreSQL核心配置参数
在终端执行以下命令进入psql交互界面:
sudo -i -u postgres psql
执行以下查询获取核心配置:
- 查询服务监听端口:
SHOW port;,默认返回值为5432 - 查询服务监听地址:
SHOW listen_addresses;,本地部署默认返回值为localhost或127.0.0.1
步骤2:检查并修正pgAdmin服务器注册配置
在pgAdmin创建服务器时,对应配置项需和上述查询结果一致:
- 【常规】标签页:自定义服务器名称即可,无强制要求
- 【连接】标签页:
- 主机名/地址:填写上述查询到的监听地址,本地部署填
localhost或127.0.0.1 - 端口:填写上述查询到的端口号,默认填
5432 - 维护数据库:填
postgres - 用户名:填
postgres - 密码:如果未给postgres角色设置过密码,先在psql中执行
ALTER USER postgres PASSWORD '自定义密码';设置密码后,此处填写对应密码 - 可勾选「保存密码」避免后续重复输入
- 主机名/地址:填写上述查询到的监听地址,本地部署填
配置完成后点击「测试连接」,如果仍报错执行下一步。
步骤3:修正身份验证配置文件
PostgreSQL的pg_hba.conf配置文件规则错误也会触发该类误报,修改方法如下:
- 在psql中执行
SHOW hba_file;获取配置文件的绝对路径 - 用管理员权限打开该文件,找到本地连接对应的配置行,将验证方式修改为
md5或scram-sha-256,示例配置如下:
# IPv4本地连接规则 host all all 127.0.0.1/32 md5 # IPv6本地连接规则 host all all ::1/128 md5
- 保存文件后重启PostgreSQL服务生效:
- Debian/Ubuntu系统执行:
sudo systemctl restart postgresql - CentOS/RHEL系统执行:
sudo systemctl restart postgresql-你的pg主版本号(例如postgresql-15)
- Debian/Ubuntu系统执行:
重启完成后回到pgAdmin重新测试连接即可正常使用。
内容的提问来源于stack exchange,提问作者krzyhub
相关产品推荐
相关产品推荐

