如何在 Ubuntu 上使用 pgAdmin 将 Postgres 连接到 localhost 服务器?
Posted
技术标签:
【中文标题】如何在 Ubuntu 上使用 pgAdmin 将 Postgres 连接到 localhost 服务器?【英文标题】:How to connect Postgres to localhost server using pgAdmin on Ubuntu? 【发布时间】:2014-09-15 01:42:31 【问题描述】:我用这个命令安装了 Postgres
sudo apt-get install postgresql postgresql-client postgresql-contrib libpq-dev
在终端上使用psql --version
我得到psql (PostgreSQL) 9.3.4
然后我安装了pgadmin
sudo apt-get install pgadmin3
稍后我打开 UI 并使用此信息创建服务器
但是出现了这个错误
我该如何解决?
【问题讨论】:
从此链接https://www.enterprisedb.com/downloads/postgres-postgresql-downloads#windows 下载 v9.3 的 postgresql 并再次运行 pgadmin III,您将获得本地主机已经安装,无需连接。 【参考方案1】:修改角色 postgres 的密码:
sudo -u postgres psql postgres
alter user postgres with password 'postgres';
现在使用用户名 postgres 和密码 postgres 连接到 pgadmin
现在您可以使用 pgAdmin 创建角色和数据库
How to change PostgreSQL user password?
【讨论】:
或者你可以... 'sudo -u postgres psql' 然后输入 '\password'。点击进入。输入新密码。 这应该是被接受的答案。谢谢你。这帮助很大。【参考方案2】:您尚未创建用户 db
。如果只是全新安装,则默认用户为postgres
,密码应为空。访问后,您可以创建您需要的用户。
【讨论】:
如果我这样做,就会出现这个错误Error connecting to the server: fe_sendauth: no password supplied
这里在 opensuse 中 postgres 用户密码不是空的,而是未定义的(/etc/shadow 中的感叹号)。无法使用密码登录。
刚刚测试验证,是的,Pg 确实为使用md5
auth 时不存在的用户发出password authentication failed
。
如何创建用户?
“连接服务器时出错:fe_sendauth:未提供密码”【参考方案3】:
它对我有帮助:
1. 打开文件
pg_hba.conf
sudo nano /etc/postgresql/9.x/main/pg_hba.conf
并改变这一行:
Database administrative login by Unix domain socket
local all postgres md5
到
Database administrative login by Unix domain socket
local all postgres trust
重启服务器
sudo service postgresql 重启
登录 psql 并设置密码
psql -U postgres
ALTER USER postgres with password 'new password';
-
再次打开文件
pg_hba.conf
并更改此行:
通过 Unix 域套接字进行数据库管理登录 本地所有 postgres 信任
到
通过 Unix 域套接字进行数据库管理登录 本地所有 postgres md5
-
重启服务器
sudo service postgresql 重启
有用。
有用的链接 1:PostgreSQL(来自 ubuntu.com)
【讨论】:
这解决了我的问题,但你能解释一下为什么在某些情况下需要在设置 postgres 密码之前将 db admin login 更改为 trust 吗? @HostMyBus 嗨,伙计,实际上我完全不记得这种情况。尝试从网上挖掘一些答案(我认为对此有一个很好的解释) @HostMyBus 这是一项安全功能。如果设置为信任,则机器上的任何用户都可以登录数据库。 而你实际上并不需要它:只需使用 WiredIn 回答【参考方案4】:首先创建一个用户。您必须以用户 postgres 的身份执行此操作。因为postgres系统账户没有分配密码,所以可以先设置密码,也可以这样:
sudo /bin/bash
# you should be root now
su postgres
# you are postgres now
createuser --interactive
程序会提示你。
【讨论】:
sudo -u postgres -i
将导致密码问题。我的系统上没有密码可以输入。我的建议总是有效的(嗯,希望如此)。
sudo -u postgress -i
不会导致密码问题(至少在默认安装后的我的 Ubuntu 上)。 createuser --interactive
不会导致密码提示... :(
@OndřejDoněk 我的建议是先 sudo /bin/bash,你这样做了吗?
你应该为角色输入什么?
$ createuser --interactive
输入要添加的角色名称:postgres
新角色应该是超级用户吗? (是/否)y
【参考方案5】:
首先您应该使用终端更改密码。 (用户名为 postgres)
postgres=# \password postgres
然后会提示你输入密码并确认。
现在您将能够使用新密码使用 pgadmin 进行连接。
【讨论】:
【参考方案6】:如果您在终端窗口中打开psql
控制台,请键入
$psql
您的超级用户用户名将显示在=#
之前,例如:
elisechant=#
$
这将是您应该用于 localhost 的用户名。
【讨论】:
以上是关于如何在 Ubuntu 上使用 pgAdmin 将 Postgres 连接到 localhost 服务器?的主要内容,如果未能解决你的问题,请参考以下文章
如何在UBUNTU 16.04上安装桌面模式中的PGADMIN 4
如何在 Ubuntu 20.04 的 pgadmin 4 中设置邮件和密码
无法在 Ubuntu 上建立 Postgres pgAdmin SSH 隧道