【问题标题】:Postgres database username in database.yml filedatabase.yml 文件中的 Postgres 数据库用户名
【发布时间】:2013-04-24 07:42:15
【问题描述】:

如何在我的本地计算机中找出我的数据库username 是什么?我正在我的 rails 应用程序中更新我的 database.yml 文件,但我尝试的任何方法都不起作用。

当尝试使用 postgres(或其他选项,例如 mymacusername)时,我收到以下错误:

FATAL:  role "postgres" does not exist

我需要创建它吗?如何?或者我可以在我的计算机上使用现有的用户名吗?

更新: 我正在尝试创建一个用户(这是在安装后不久,所以问题可能是它还不存在) 我跑了createuser -s -U $USER 要添加的角色名称:postgres

但出现以下错误:

createuser: could not connect to database postgres: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

所以这就是问题所在 - 如何让它监听正确的套接字?

【问题讨论】:

    标签: ruby-on-rails database ruby-on-rails-3 postgresql


    【解决方案1】:

    如果您有 root 访问权限:

    sudo -u postgres psql DATABASENAME
    

    在里面输入

    \l
    

    显示所有数据库及其用户

    【讨论】:

    • 我有管理员权限。我试过了,得到了sudo: unknown user: postgres
    • 试试看here
    • 谢谢,这似乎是问题所在,但没有解决方案 - 我怎样才能找到那个套接字并让它听它?我正在尝试sudo find / -name .s.PGSQL.5432 -ls,但不确定如何让 postgres 与之交谈
    • netstat -nlp | grep postgre 。监听端口应该是最后一个数字。结果中应该有超过 1 个条目
    • netstat: option requires an argument -- p
    【解决方案2】:

    我们只需要创建 postgres 角色。 创建角色名称 postgres 的命令: 1.sudo -u postgres psql 2.CREATE ROLE postgres WITH SUPERUSER CREATEDB CREATEROLE LOGIN ENCRYPTED PASSWORD 'password'

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-23
      • 1970-01-01
      • 2015-03-31
      • 2012-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多