我正在设置一个Digital Ocean Ubuntu服务器来托管我的新网站,但在设置postgres时遇到了麻烦。
我安装得很好但是当我尝试使用psql
访问它时,我得到了:
psql:致命:角色“演示”不存在
一些简单的问题:
安装postgres是否创建了标准的ubuntu用户帐户?
如何创建新的postgres帐户,我尝试了createuser
但获得以下内容:
demo @ dubbo:〜$ createuser 输入要添加的角色名称:demopg 新角色应该是超级用户吗? (是/否)y createuser:无法连接到数据库postgres:致命:角色“demo”不存在
我想,一旦我有了postgres用户,我就应该能够为我的应用程序创建一个db来使用。
答案 0 :(得分:3)
以下是我在Ubuntu上进行开发安装PostgreSQL的步骤(我正在使用PostreSQL和Rails):
$ 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
祝你好运!