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

使用psql连接PostgreSQL报错角色"edac"不存在如何解决

PostgreSQL psql报错"role 'edac' does not exist"解决思路
  • 首先确认5432端口运行的PostgreSQL实例归属
    你同时安装了Homebrew版和Postgres.app两个PostgreSQL,先确认当前运行的实例避免操作错位,执行命令:
    lsof -i :5432
    从输出的COMMAND对应的路径即可判断:Postgres.app的进程路径通常包含/Applications/Postgres.app/前缀,Homebrew版路径通常包含/usr/local/var/postgres(Intel芯片)或/opt/homebrew/var/postgres(Apple芯片)前缀。

  • 临时登录PostgreSQL创建缺失角色
    报错的核心原因是psql默认会用当前系统用户名(也就是edac)作为登录角色,而你运行的PostgreSQL实例中没有提前创建这个角色。你可以用默认管理员角色登录:

    1. 先尝试用默认管理员角色postgres登录:
      psql -U postgres
      如果提示socket连接失败,改为走TCP连接登录:
      psql -U postgres -h localhost
    2. 登录成功后执行SQL创建edac角色,本地开发场景建议给足权限方便使用:
      CREATE ROLE edac WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD '自定义你的密码';
      
    3. 执行\q退出psql,再次直接执行psql即可正常登录。
  • (可选)修复多版本PostgreSQL路径冲突
    两个版本共存会导致psql客户端调用混乱,可通过调整PATH优先级固定使用的版本:

    1. 执行which psql查看当前调用的psql客户端路径,确认是否是你要优先使用的版本对应的路径
    2. 若要优先使用Postgres.app的客户端,将以下配置添加到你的shell配置文件(/.zshrc或/.bash_profile)中:
      export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"
      若要优先使用Homebrew版的客户端,确保Homebrew的bin路径(/usr/local/bin或/opt/homebrew/bin)在PATH最靠前的位置即可
    3. 执行source ~/.zshrc(对应zsh)或source ~/.bash_profile(对应bash)使配置生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 16:24:02