【问题标题】:How to connect Postgres to localhost server using pgAdmin on Ubuntu?如何在 Ubuntu 上使用 pgAdmin 将 Postgres 连接到 localhost 服务器?
【发布时间】: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 并使用此信息创建服务器

但是出现了这个错误

我该如何解决?

【问题讨论】:

标签: postgresql database-connection pgadmin


【解决方案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
  1. 重启服务器

    sudo service postgresql 重启

  2. 登录 psql设置密码

    psql -U postgres

ALTER USER postgres with password 'new password';

  1. 再次打开文件 pg_hba.conf 并更改此行:
通过 Unix 域套接字进行数据库管理登录
    本地所有 postgres 信任

 通过 Unix 域套接字进行数据库管理登录
    本地所有 postgres md5
  1. 重启服务器

    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 的用户名。

    【讨论】:

      猜你喜欢
      • 2021-12-04
      • 2020-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-17
      • 1970-01-01
      相关资源
      最近更新 更多