Ubuntu 22.04执行一站式开发环境安装命令时PostgreSQL相关权限错误咨询
Ubuntu 22.04执行一站式开发环境安装命令时PostgreSQL相关权限错误咨询
别担心,这是新手入门Linux时很常见的小警告,不是致命错误,我来给你拆解清楚:
错误原因
你看到的could not change directory to "/home/user": Permission denied提示,是因为执行createuser和createdb时,用了sudo -u postgres切换到PostgreSQL的系统用户来操作——而这个postgres用户默认没有权限访问你的个人主目录/home/user,所以会弹出这个权限拒绝的警告。但核心的操作(创建超级用户和对应数据库)其实已经成功完成了,这个提示只是告诉你postgres用户没法进入你的主目录,完全不影响功能使用。
验证操作是否成功
你可以快速验证PostgreSQL是否配置正常:
- 打开终端,直接输入命令
psql - 如果能顺利进入PostgreSQL的命令行界面(显示类似
user=#的提示符),说明你的用户和数据库已经创建成功,后续开发完全可以正常使用。
(可选)消除警告的方法
如果你看着这个警告不舒服,可以换一种方式执行PostgreSQL的创建命令,让postgres用户在自己的主目录下操作:
sudo -u postgres bash -c "cd ~ && createuser --superuser $USER && createdb $USER"
这样就不会再弹出权限拒绝的提示了。
给新手的小建议
- 以后遇到这种超长的一站式命令,建议拆分成一行一行执行,这样如果某一步出错,更容易定位问题;
- 如果后续使用PostgreSQL遇到连接问题,可以先检查服务是否正常启动:
sudo systemctl status postgresql
备注:内容来源于stack exchange,提问作者Nick
相关产品推荐
相关产品推荐

