linux - 第一次如何配置postgresql?

标签 linux database postgresql configuration

我刚刚安装了 postgresql,并在安装过程中指定了密码 x。 当我尝试执行 createdb 并指定任何密码时,我会收到以下消息:

createdb: could not connect to database postgres: FATAL: password authentication failed for user

createuser 也一样。

我应该如何开始? 我可以将自己作为用户添加到数据库吗?

最佳答案

其他答案对我来说并不完全令人满意。以下是在 Xubuntu 12.04.1 LTS 上适用于 postgresql-9.1 的方法。

  1. 使用用户 postgres 连接到默认数据库:

    sudo -u postgres psql template1

  2. 设置用户postgres的密码,然后退出psql(Ctrl-D):

    ALTER USER postgres with encrypted password 'xxxxxxx';

  3. 编辑pg_hba.conf文件:

    sudo vim /etc/postgresql/9.1/main/pg_hba.conf

    在 postgres 的行中将“peer”改为“md5”:

    local      all     postgres     peer md5

    要知道你正在运行什么版本的 postgresql,请在 /etc/postgresql 下查找版本文件夹。 .此外,您可以使用 Nano 或其他编辑器代替 VIM。

  4. 重启数据库:

    sudo /etc/init.d/postgresql restart

    (在这里您可以检查它是否适用于 psql -U postgres)。

  5. 创建一个和你同名的用户(要找到它,你可以输入 whoami):

    sudo createuser -U postgres -d -e -E -l -P -r -s <my_name>

    这些选项告诉 postgresql 创建一个可以登录的用户,创建数据库,创建新角色,是一个 super 用户,并且有一个加密的密码。真正重要的是 -P -E,让您输入将被加密的密码,以及 -d,以便您可以执行 createdb .

    注意密码:它会首先询问您两次新密码(针对新用户),重复一次,然后再询问一次 postgres 密码(在步骤 2 中指定的密码)。

  6. 再次,编辑 pg_hba.conf文件(参见上面的步骤 3),并将“所有”其他用户的行上的“peer”更改为“md5”:

    local      all     all     peer md5

  7. 重新启动(如第 4 步),并检查您是否可以在没有 -U postgres 的情况下登录:

    psql template1

    请注意,如果您只执行 psql ,它将失败,因为它会尝试将您连接到与您同名的默认数据库(即 whoami )。 template1 是从一开始就存在的管理数据库。

  8. 现在createdb <dbname>应该可以。

关于linux - 第一次如何配置postgresql?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1471571/

相关文章:

php - Linux 如何在后台进程中依次运行 cat 和 unlink

linux - 替代 solaris 库?

postgresql - 将 Postgres 对象添加到 Template1

mysql - 这个 Postgresql 表可以转换为 MySql 表吗?

postgresql - AWS docker multicontainer应用程序上的哪个postgres连接字符串?

c++ - 在多核盒子上使用忙循环应用程序

python - 网页抓取 ~ Python

mysql - 如何索引 MySQL 中预先存在的数据?

sql - PostgreSQL 中的批量/批量更新/更新插入

php - 在不刷新页面的情况下将数据发送到数据库