0

我正在设置一个 Digital Ocean Ubuntu 服务器来托管我的新站点,并且在设置 postgres 时遇到了麻烦。

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

psql:致命:角色“演示”不存在

几个简单的问题:

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

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

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

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

4

1 回答 1

3

以下是我在 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

祝你好运!

于 2013-04-22T18:37:53.537 回答