Fedora安装PostgreSQL后psql报权限不足且postgres密码未知问题问询
问题解决方案
核心问题原因
- 切换到postgres系统用户后无需额外加sudo执行psql命令:postgres是PostgreSQL默认的管理系统用户,自带本地无密码登录数据库的权限,加sudo反而会要求postgres用户的sudo密码,该用户默认无sudo权限也无默认密码,因此触发报错。
- 普通用户直接执行psql报Permission denied是因为默认PostgreSQL的本地认证规则仅允许同名系统用户登录对应数据库用户,普通用户无权限直接登录postgres数据库用户。
修复步骤
1. 立即完成postgres数据库密码修改
你已经成功切换到postgres系统用户的shell下,直接执行以下命令即可,无需加sudo:
psql -c "alter user postgres with password '你自定义的强密码'"
执行成功就完成了数据库超级用户密码的设置。
2. 解决普通用户运行psql权限报错的问题,二选一即可:
方案A:临时切换用户操作(推荐新手使用)
后续需要操作PostgreSQL时,先执行以下命令切换到postgres系统用户,输入你自己的pedro用户的sudo密码即可:
sudo su - postgres
所有PostgreSQL相关操作都在这个shell下执行,不需要额外加sudo。
方案B:配置普通用户直接操作权限
如果需要用pedro用户直接运行psql,执行以下配置:
- 切换到postgres用户:
sudo su - postgres - 进入数据库交互终端:
psql - 创建和系统用户同名的数据库超级用户(可根据需求调整权限):
CREATE USER pedro WITH SUPERUSER PASSWORD '你自定义的用户密码';
- 创建同名默认数据库:
CREATE DATABASE pedro OWNER pedro;
- 输入
\q退出psql,回到pedro用户的shell下即可直接运行psql正常登录。
内容的提问来源于stack exchange,提问作者pedro
相关产品推荐
相关产品推荐

