You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac M1(Monterey)环境下psql无法启动问题求助

解决PostgreSQL@14角色不存在的问题

出现FATAL: role "johndoe" does not exist错误,是因为PostgreSQL默认需要一个与系统当前用户名同名的登录角色,而你的数据库实例中未创建该角色。重装未解决问题是因为brew卸载时通常不会删除数据目录,重装后复用了原有无对应角色的数据库。

可以通过以下步骤解决:

  • 停止PostgreSQL服务:
brew services stop postgresql@14
  • 重新初始化数据库(替换johndoe为你的系统用户名):
initdb /usr/local/var/postgresql@14 -E utf8 --username=johndoe

该命令会创建包含指定角色的新数据库实例,/usr/local/var/postgresql@14是brew安装postgresql@14的默认数据存储目录。

  • 重启服务:
brew services start postgresql@14
  • 验证连接:
psql

此时应该能正常进入PostgreSQL命令行。

备选方案(无需重新初始化):
如果不想重置现有数据,可手动创建角色:

  1. 以默认postgres角色登录(若该角色存在):
psql -U postgres
  1. 在PostgreSQL命令行中创建角色并赋予权限:
CREATE ROLE johndoe WITH LOGIN PASSWORD 'your_secure_password';
ALTER ROLE johndoe CREATEDB; -- 可选,允许该角色创建数据库
  1. 退出后使用新角色登录:
psql -U johndoe

内容的提问来源于stack exchange,提问作者Patrick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 08:11:39