ruby-on-rails 活动记录::连接未建立:通过套接字“/tmp/.s.PGSQL.5432”连接到服务器失败:致命:角色“{my_laptop_name1}”不存在

c8ib6hqw  于 2023-01-22  发布在  Ruby
关注(0)|答案(1)|浏览(107)

我正在和一个朋友一起开发一个小的Rails应用程序来继续学习Rails,我在我的旧笔记本电脑上克隆了他的GitHub库。
当我第二天把所有东西迁移到我的新笔记本电脑上时,我被迫在笔记本电脑用户帐户的末尾加了一个1,出于某种原因,当我尝试在新笔记本电脑上使用应用程序时(特别是在运行rails db:migrate之后),这个问题就会出现:
活动记录::连接未建立:通过套接字"/tmp/.s.PGSQL.5432 "连接到服务器失败:致命错误:角色"我的笔记本电脑名称1"不存在
我知道新的笔记本电脑是问题的核心,我只是不知道如何/为什么。
我已经尝试了许多StackOverflow解决方案(hereherehere),但在任何地方都没有太多运气。

zed5wv10

zed5wv101#

在旧笔记本电脑上安装Postgres的过程中,会创建一个与shell登录用户名匹配的Postgres角色(Postgres使用"role"一词来表示我们所认为的"user"--登录的人)。
在你的新笔记本电脑中,Postgres没有这个角色。
需要检查的事项:

  • 如果您在更改用户名之前在新计算机上安装了Postgres,则旧用户名可能作为角色存在于Postgres中
  • 您可以使用psql -U my_laptop_namepsql指定一个用户(如果不使用-U,postgres将假定角色名与shell登录名相同)
  • 如果可以,您可以更改db/config.yml以使用旧的角色名
  • 如果您希望数据库角色/用户名为其他名称,则可以使用postgres cli,如下所示:sudo -u postgres createuser <username>

相关问题