获取错误:当试图让pgsql与rails一起工作时,用户“postgres”的对等身份验证失败

rvpgvaaj  于 2021-07-24  发布在  Java
关注(0)|答案(19)|浏览(346)

我得到一个错误:

FATAL: Peer authentication failed for user "postgres"

当我试图让postgres使用rails时。
这是我的 pg_hba.conf ,我的 database.yml ,以及一堆完整的痕迹。
我在pgèhba中将身份验证更改为md5,并尝试了不同的方法,但似乎都不起作用。
我还尝试根据Rails3.2创建一个新用户和数据库,致命错误:用户的对等身份验证失败(pg::error)
但他们不会出现在pgadmin上,甚至在我跑步的时候 sudo -u postgres psql -l .
知道我哪里出错了吗?

gz5pxeao

gz5pxeao16#

sudo psql --host=localhost --dbname=database-name --username=postgres

这解决了我的问题

x8diyxa7

x8diyxa717#

这对我有用!!

sudo -u postgres psql
6ju8rftf

6ju8rftf18#

如果您通过localhost(127.0.0.1)进行连接,就不会遇到这种问题。我不太喜欢pg_hba.conf,但我会调整您的连接字符串:

psql -U someuser -h 127.0.0.1 database

其中someuser是您要连接的用户,database是您的用户有权连接的数据库。
下面是我在debian上设置postgres的步骤:

http://www.postgresql.org/download/linux/debian/  (Wheezy 7.x)

as root …

    root@www0:~# echo "deb http://apt.postgresql.org/pub/repos/apt/ wheezy-pgdg main" >> /etc/apt/sources.list

    root@www0:~# wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -

    root@www0:~# apt-get update

    root@www0:~# apt-get install postgresql-9.4        

    root@www0:~# su - postgres 

    postgres@www0:~$ createuser --interactive -P someuser
    Enter password for new role:
    Enter it again:
    Shall the new role be a superuser? (y/n) n
    Shall the new role be allowed to create databases? (y/n) y
    Shall the new role be allowed to create more new roles? (y/n) n

    postgres@www0:~$ createdb -O someuser database

    postgres@www0:~$ psql -U someuser -h 127.0.0.1 database

好好享受!

1zmg4dgp

1zmg4dgp19#

安装postgresql之后,我做了以下步骤。
打开文件 pg_hba.conf 对于ubuntu,它将在 /etc/postgresql/9.x/main 并更改这行:

local   all             postgres                                peer

local   all             postgres                                trust

重新启动服务器

$ sudo service postgresql restart

登录psql并设置密码

$ psql -U postgres
db> ALTER USER postgres with password 'your-pass';

终于改变了 pg_hba.conf

local   all             postgres                                trust

local   all             postgres                                md5

重新启动postgresql server后,您可以使用自己的密码访问它
身份验证方法详细信息:
信任-任何可以连接到服务器的人都有权访问数据库
对等-使用客户端的操作系统用户名作为数据库用户名来访问它。
md5-基本密码身份验证
更多参考请点击此处

相关问题