I15*_*159 366 postgresql ubuntu pgadmin
我安装了PostgreSQL 8.4,Postgres客户端和Pgadmin 3.对于控制台客户端和Pgadmin用户"postgres"的身份验证失败.我输入的用户为"postgres",密码为"postgres",因为之前有效.但现在身份验证失败了.我之前做过几次没有这个问题.我该怎么办?会发生什么?
psql -U postgres -h localhost -W
Password for user postgres:
psql: FATAL: password authentication failed for user "postgres"
FATAL: password authentication failed for user "postgres"
Run Code Online (Sandbox Code Playgroud)
A.H*_*.H. 659
如果我没记错的话,默认情况下用户postgres
没有在Ubuntu上设置DB密码.这意味着,您只能使用postgres
操作系统用户帐户登录该帐户.
假设您可以root
访问该框,您可以执行以下操作:
sudo -u postgres psql
Run Code Online (Sandbox Code Playgroud)
如果失败并出现database "postgres" does not exists
错误,那么您很可能不在Ubuntu或Debian服务器上:-)在这种情况下,只需添加template1
命令:
sudo -u postgres psql template1
Run Code Online (Sandbox Code Playgroud)
如果这些命令中的任何一个失败并出现错误,psql: FATAL: password authentication failed for user "postgres"
则检查文件/etc/postgresql/8.4/main/pg_hba.conf
:必须有这样的行作为第一个非注释行:
local all postgres ident
Run Code Online (Sandbox Code Playgroud)
对于较新版本的PostgreSQL ident
实际上可能是peer
.那也没关系.
在psql
shell中,您可以为DB用户 postgres
提供密码:
ALTER USER postgres PASSWORD 'newPassword';
Run Code Online (Sandbox Code Playgroud)
您可以psql
通过键入CtrlD或使用命令离开shell \q
.
现在你应该能够为pgAdmin提供DB超级用户的有效密码,它也会很开心.:-)
Die*_*ego 130
员工的反应是正确的,但如果你想进一步自动化可以做到:
$ sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"
完成!您保存了User = postgres和password = postgres.
如果您没有用户postgres ubuntu的密码,请执行以下操作:
$ sudo passwd postgres
Mig*_*ira 41
这很令人沮丧,上面的大多数答案都是正确的,但他们没有提到你必须重新启动数据库服务才能使pg_hba.conf文件中的更改生效.
所以,如果你做了类似上面的事情
本地所有postgres身份
然后以root身份重启(在centos上就像服务服务postgresql-9.2重启)现在你应该能够以用户postgres的身份访问数据库了
$ psql psql(9.2.4)输入"help"获取帮助.
Postgres的=#
希望这为新的postgres用户添加信息
mes*_*lds 17
编辑pg_hba.conf文件,例如: sudo emacs /etc/postgresql/9.3/main/pg_hba.conf
将所有的认证方法trust
.更改"postgres"用户的Unix密码.重启服务器.登录psql -h localhost -U postgres
并使用刚刚设置的Unix密码.如果可行,您可以将pg_hba.conf文件重新设置为默认值.
gee*_*ugi 12
如果您尝试以postgres用户身份登录postgres shell,则可以使用以下命令.
切换到postgres用户
# su - postgres
Run Code Online (Sandbox Code Playgroud)
登录psql
# psql
Run Code Online (Sandbox Code Playgroud)
希望有所帮助
小智 12
进入 postgres shell 后,输入此命令
postgres=# \password postgres
Run Code Online (Sandbox Code Playgroud)
输入这个命令后会提示你设置密码,直接设置密码然后试试。
Loa*_*ron 12
当您安装 postgresql 时,没有为用户 postgres 设置密码,您必须使用以下命令在 Unix 上显式设置它:
sudo passwd postgres
Run Code Online (Sandbox Code Playgroud)
它会询问您的 sudo 密码,然后提示您输入新的 postgres 用户密码。 来源
Jos*_* Kj 11
对于那些第一次使用它并且没有关于密码的信息的人,他们可以遵循以下步骤(假设您使用的是ubuntu):
打开文件的pg_hba.conf中/etc/postgresql/9.x/main
sudo vi pg_hba.conf
Run Code Online (Sandbox Code Playgroud)
2.编辑以下行
local all postgres peer
Run Code Online (Sandbox Code Playgroud)
至
local all postgres trust
Run Code Online (Sandbox Code Playgroud)重启服务器
sudo service postgresql restart
Run Code Online (Sandbox Code Playgroud)Fra*_*uga 10
尽量不要使用-W参数并将密码留空.有时用户使用无密码创建.
如果这不起作用重置密码.有几种方法可以做到这一点,但这适用于许多系统:
$ su root
$ su postgres
$ psql -h localhost
> ALTER USER postgres with password 'YourNewPassword';
Run Code Online (Sandbox Code Playgroud)
小智 7
古老的线程,但我在 2020 年浪费了半天时间来处理这个问题,所以这可能对某人有所帮助:仔细检查您的 postgres 端口(在 Ubuntu 上,它在 /etc/postgresql/9.5/main/postgresql.conf 中)。psql 客户端默认使用端口 5432,但在我的情况下,服务器在端口 5433 上运行。解决方案是在 psql 中指定 -p 选项(例如psql --host=localhost --username=user -p 5433 mydatabase
)。
如果您不使用 --host 参数,psql 将通过套接字连接,这在我的情况下有效,但我的 Golang 应用程序(使用 TCP/IP)没有。不幸的是,错误消息是password authentication failed for user "user"
,这是误导性的。修复方法是使用带有端口的 url 连接字符串(例如postgres://user:password@localhost:5433/mydatabase
)。
我的设置是 Digital Ocean 上的 Ubuntu 18.04,通过 apt-get 安装了 postgres 9.5,所以不确定为什么会发生这种情况。希望这可以为您节省一些时间。
根据经验:您永远不要为POSTGRES用户设置密码。
如果您需要pgAdmin的超级用户访问权限,请设置另一个超级用户。这样,如果该超级用户的凭据受到破坏,则始终可以将ssh放入实际的数据库主机中,并使用以下命令手动删除该超级用户
sudo -u postgres -c "DROP ROLE superuser;"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
641182 次 |
最近记录: |