PostgreSQL连接报错:角色'aurelien'不存在,请求排查解决
PostgreSQL连接报错:FATAL: the role 'aurelien' does not exist 解决方法
我在尝试连接PostgreSQL数据库时遇到报错:
SQLSTATE[08006] [7] FATAL: the role 'aurelien' does not exist
相关配置与查询信息
docker-compose.yml配置片段
- ROY_POSTGRESQL_ADDON_HOST=192.***.*** - ROY_POSTGRESQL_ADDON_DB=****** - ROY_POSTGRESQL_ADDON_PORT=5432 - ROY_POSTGRESQL_ADDON_USER=aurelien
数据库表查询结果(执行\d命令)
List of relations Schema | Name | Type | Owner --------+----------+-------+---------- public | wb_vente | table | aurelien
数据库角色列表
List of roles Role name | Attributes | Member of -----------+------------------------------------------------------------+----------- aurel | | {} aurelien | | {} postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
已确认pg_hba.conf和postgresql.conf配置正确,求解决方法。
排查方向及解决步骤
确认目标数据库实例一致性
检查ROY_POSTGRESQL_ADDON_HOST指向的IP是否与你查询角色列表的PostgreSQL实例一致。直接在应用所在服务器执行手动连接测试:psql -h 192.***.*** -U aurelien -d ******如果此命令也报错,说明目标实例确实不存在该角色,需在对应实例中创建
aurelien角色。检查角色名称大小写问题
PostgreSQL默认不区分角色名大小写,但如果创建角色时使用双引号包裹(如CREATE ROLE "aurelien";),则角色名会被视为大小写敏感。尝试用带双引号的角色名连接测试:psql -h 192.***.*** -U "aurelien" -d ******若成功,说明应用连接时需指定大小写敏感的角色名。
验证环境变量传递正确性
进入应用容器,检查环境变量是否正确注入:echo $ROY_POSTGRESQL_ADDON_USER确保输出为
aurelien,避免变量名拼写错误或容器未正确加载配置。重启PostgreSQL服务
若角色是刚创建的,尝试重启PG服务刷新缓存:pg_ctl restart重启后再尝试应用连接。
内容的提问来源于stack exchange,提问作者Max Porchet
相关产品推荐
相关产品推荐

