我在创建新的psql用户时遇到问题,因为我无法以“postgres”身份登录psql,我试过了
1. sudo -u postgres psql
2. sudo -u postgres createuser img_site -P -s -e
他们都要求我知道“postgres”的密码。我试图更改用户“postgres”的unix密码(我知道它很危险)它仍然告诉我:用户“postgres”的密码验证失败。我也尝试了GUI pgAdmin,但它也是一样的错误。
我不知道它是否相关:我创建了一个符号链接
sudo ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/
为了摆脱错误
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"?
答案 0 :(得分:1)
检查pg_hba.conf
。它应该在顶部有一条这样的行(在所有其他条目之前):
local all postgres peer
这允许postgres
db用户对所有数据库进行本地unix套接字访问,而不需要密码。
同时清除并重新定义postgres
系统用户的密码:
sudo passwd -d postrges
sudo su postgres -c passwd
然后运行:
su postgres -c psql template1
psql> ALTER USER postgres WITH PASSWORD '<password>';
键入\q
以退出psql,您已完成重置postgres
用户的密码。
答案 1 :(得分:1)
sudo
不需要您要切换到的帐户的密码,它需要您从切换的帐户的密码。它还要求您成为管理员(或者在/ etc / sudoers中使用其他方式)。另一方面,su
需要您将转换为的帐户的密码。
答案 2 :(得分:0)
我正在尝试为Ruby on Rails设置postgres,并且因为用户错误而导致密码验证失败。检查服务器是否实际运行:
pg_ctl -D /usr/local/var/postgres status
如果你得到
pg_ctl: no server running
运行
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
此外,您必须在psql中包含localhost。
psql -U postgres -h localhost
答案 3 :(得分:0)
这对我有用:
使用密码“ my_password”更改用户my_user;