【问题标题】:Fresh PG install on Ubuntu [closed]在 Ubuntu 上安装全新的 PG [关闭]
【发布时间】:2013-04-22 17:59:47
【问题描述】:

我正在设置一个 Digital Ocean Ubuntu 服务器来托管我的新站点,但在设置 postgres 时遇到了问题。

我安装得很好,但是当我尝试使用 psql 访问它时,我得到:

psql: FATAL: 角色“demo”不存在

几个小问题:

  1. 安装 postgres 是否会创建标准 ubuntu 用户帐户?

  2. 如何创建一个新的 postgres 帐户,我尝试过createuser,但得到以下信息:

    demo@dubbo:~$ createuser 输入要添加的角色名称:demopg 新角色应该是超级用户吗? (y/n) 是 createuser:无法连接到数据库 postgres:致命:角色“演示”不存在

我想一旦我有了一个 postgres 用户,我就应该能够创建一个数据库供我的应用程序使用。

【问题讨论】:

  • 我在另一个问题中发现了这一点:sudo -u postgres psql postgres 这让我进入,但有人能解释一下这是在做什么吗?
  • 为什么关闭了?这是一个完全合理的问题,有人在下面发布了一个完全合理的答案。没有什么不对。非常令人惊讶。

标签: postgresql ubuntu installation vps


【解决方案1】:

以下是我在 Ubuntu 上安装 PostgreSQL 以进行开发的步骤(我正在使用带有 Rails 的 PostreSQL):

$ sudo apt-get install postgresql postgresql-contrib libpq-dev

我们需要 libpq-dev 才能安装 Ruby pg gem。设置完成后, 然后运行以下命令:

$ sudo -u postgres createuser --superuser $USER
$ sudo -u postgres createuser --superuser demo
$ sudo -u postgres psql postgres

第一个命令创建一个与您的用户名匹配的用户。第二个命令为您的应用程序创建一个用户来使用——这是您通常用来登录 psql 的用户。第三个命令将直接带您进入 psql 控制台,并打开 postgres 数据库。就是postgres用户对应的数据库,不知为什么安装PostgreSQL的时候需要用到。

在 psql 提示符下,键入以下命令:

postgres=# \password demo

为您的用户设置密码。回到提示符后,键入“\q”退出 psql 提示符。

现在您将返回终端,然后可以为您的应用程序创建数据库。

$ createdb your_db_name

现在,您需要更改 postgresql.conf 文件以使 PostgreSQL 至少侦听 localhost。如果您有一个想要监听外部 IP 或其他内容的设置,请将此行更改为 IP 或只是“*”。

/etc/postgresql/9.1/main/postgresql.conf:
listen_addresses = 'localhost'

然后,在 pg_hba.conf 中,确保你有这个:

/etc/postgresql/9.1/main/pg_hba.conf:
# "local" is for Unix domain socket connections only
local   all         all                               md5

否则,您在尝试从 Rails 应用程序登录时可能会遇到错误。在此之后,您所要做的就是使用以下命令启动 PostgreSQL:

$ sudo /etc/init.d/postgresql start

你准备好了!使用以下命令启动 psql:

$ psql -U demo

系统将提示您输入您设置的密码。您可以连接到您创建的数据库:

# \c your_db_name

祝你好运!

【讨论】:

  • Ubuntu 上的 PG 默认在 localhost 上侦听,因此无需更改。至于对pg_hba.conf 的更改,尚不清楚您认为有什么必要。默认的peer 方法通常是本地连接的更好选择(注意local 不同于localhost 用于postgres)
  • 我正在尝试使用以下命令以新创建的用户 demopg 身份登录 psql:psql -u demopg but get /usr/lib/postgresql/9.1/bin/psql: invalid option -- 'u' 尝试“psql --help”以获取更多信息。有什么想法吗?
  • 大写 U 也失败了。同样的错误
  • 对此有什么想法吗?
  • 谢谢您,先生,您是救命稻草。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-30
  • 1970-01-01
  • 2013-01-06
  • 1970-01-01
  • 2011-03-08
相关资源
最近更新 更多