如何在 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 中设置邮件和密码

如何停止 pgadmin 4 进程?

无法在 Ubuntu 上建立 Postgres pgAdmin SSH 隧道

关于ubuntu服务器上部署postgresql 以及安装pgadmin4管理工具(web版)

我应该如何使用 pgAdmin 3 将数据从 CSV 导入 Postgres 表?