如何从管理员处访问postgres数据库?
我已更改用户的密码postgres
:
$ sudo -u postgres psql
$ postgres=# alter user postgres password 'secret';
结果:
ALTER ROLE
但我在管理员身上仍然会出现以下错误:
Unable to connect to PostgreSQL server: FATAL: Peer authentication failed for user "postgres"
你知道为什么吗?
我有两个用户:
postgres=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
root | Superuser, Create role, Create DB | {}
但是,当我使用以下命令创建用户root
时,我没有为其设置密码:
sudo -u postgres createuser --interactive
输出(为什么不要求密码??):
Enter name of role to add: root
Shall the new role be a superuser? (y/n) y
但我仍然得到管理员的错误:
Unable to connect to PostgreSQL server: FATAL: Peer authentication failed for user "root"
编辑:
这是我的pg_hba的一些内容。形态
sudo nano /etc/postgresql/9.5/main/pg_hba.conf
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres peer
#host replication postgres 127.0.0.1/32 md5
#host replication postgres ::1/128 md5
我将peer
更改为ident
:
# Database administrative login by Unix domain socket
local all postgres ident
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all ident
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres peer
#host replication postgres 127.0.0.1/32 md5
#host replication postgres ::1/128 md5
然后重启了我的机器。但还是没有运气。
看起来您正在使用“对等身份验证”,而您想要使用“密码身份验证”。使用默认pg_hba.conf,您可以通过指定主机名或“127.0.0.1”切换到密码身份验证。
有关身份验证方法,请参阅Postgres留档。
我从这里得到了答案:
local all postgres md5
然后重启服务:
sudo systemctl restart postgresql.service
身份验证设置看起来还可以,所以我不确定从这里要做什么。
我第一次将应用程序部署到数字海洋,遇到了两个(可能更多)问题。 1) 在将添加到Gemfile后,我无法。我发现kgio与windows不兼容。我必须要Gemfile吗。当我通过capistrano部署时是否存在锁?我如何解决这个问题? 2)我在服务器上的postgreql上遇到身份验证问题。 我运行了这些命令(以及其他一些命令): 每次我限制部署时,我都会收到这个错误: 我尝试输入一个我知道不存
当我创建一个新用户,但它无法登录数据库时。 我这样做: 然后创建一个数据库: 之后,我尝试登录,但出现错误: 我试图解决这个问题,但失败了。
我在尝试使用postgresql 11时遇到了rails 5.2.3的这个问题。 我一直在检查1号和2号 他们讨论pg_hba.conf以及如何将这些方法更改为md5或trust。在我的硬盘上,没有这样的文件。这些归档文件位于/var/lib/postgresql/11/: 如果我试图找到文件,它会出现在这里: 如果我进去,信任方法已经被使用了。 我已经卸载postgresql并再次安装它。 这是
我明白,如果添加-h localhost,它就可以工作了。 添加此标志是否会导致psql使用对等身份验证?
我似乎正确地安装了PostgreSQL 9.5.5。和Psycopg2,可以通过以下方式登录: