【问题标题】:Installing Postgresql and PgAdmin3 on Linux在 Linux 上安装 Postgresql 和 PgAdmin3
【发布时间】:2013-11-24 08:37:35
【问题描述】:

我在 Windows 上使用 Postgesql 和 PgAdmin 没有任何问题,但我很难让它在 Linux 上运行(我是 Linux N00b)。我在these instructions 之后在我的 Fedora 机器上安装了 64 位版本(除了用 9.3 版本代替 9.2)。在我开始使用以下命令启动 pgsql 之前,一切正常:

sudo -u postgres psql template1

在这里我收到错误“权限被拒绝”,因为尝试更改到我的主目录。

我可以按照说明更改“postgres”的密码,我认为这只是为了让我可以在 pg_hba.conf 中使用“md5”而不是“信任”(如果不是,那么我不明白为什么我需要这一步)。

当我启动 PgAdmin3 时,最初我没有连接。尝试连接到服务器会给我一个用户“postgres”的身份验证错误。我尝试将 pg_hba.conf 重置为“信任”,但这也不起作用。

我希望能解释一下 Linux 中的“postgres”用户,因为它似乎是 Linux 系统上的一个单独的实际用户(与 Windows 不同,它只是一个仅与 Postgress 相关的“无实体”用户)。其次,我们将非常感谢帮助 PgAdmin 与 Postgresql 对话。

【问题讨论】:

    标签: linux postgresql pgadmin


    【解决方案1】:
    psql -U postgres template1
    

    在pg_hba.conf中设置md5会提示输入密码

    【讨论】:

    • 感谢您的建议。我没有收到 Linus 的“权限被拒绝”错误,但不幸的是,当我以这种方式设置“postgres”的密码时,当我尝试连接时,我收到一个 psql 错误“致命:用户“postgres”的密码身份验证失败”。
    【解决方案2】:

    经过大量挖掘,我发现大部分文档都不完整。我需要通过 Cefull Lo 的解决方案 (+1) 和 NOT(在大多数文档中)进行连接的组合:

    sudo -U postgres psql

    然后要更改密码我需要一个更明确的SQL命令如下

    template1=# ALTER USER postgres with encrypted password ‘yourpassword’;

    我认为我需要明确声明“使用加密密码”,因为我使用的是 md5,但同样,90% 的文档未能指出这一点,并建议对密码进行基本更改以及 md5。也许这是 Fedora 特有的,谁知道呢,但现在我可以通过 PgAdmin3 连接。

    【讨论】:

    • 几个误会。 sudo 部分仅在您还不是 postgres 时才需要,当然,只有在您的系统安装了 sudo 时才可能。身份验证方法trust 允许没有密码的连接,但前提是您指定了适当的连接(并重新加载)。 localhost 经常混在一起。 ALTER USER 的工作完全独立于您的连接设置,就像任何其他 SQL 命令一样。
    猜你喜欢
    • 1970-01-01
    • 2012-01-17
    • 2014-09-14
    • 2016-08-21
    • 2018-09-09
    • 2021-03-06
    • 2017-02-20
    • 1970-01-01
    • 2020-01-18
    相关资源
    最近更新 更多