显然,这是一个很难问的问题,因为尽管它很简单,但似乎没有人回答它。
我在 ubuntu 12.10 服务器(无 GUI)上运行 PostgreSQL。
我的目标——我的问题——是创建一个名为“mydb”的数据库和一个用户“admin”,这样我就可以从 shell 以普通用户的身份给出这个命令并连接到数据库:
$ psql -U 管理员 -d mydb
但我无法在任何地方找到答案。
我可以通过 su'ing 并运行psql命令以用户postgres身份登录:
$ sudo su -m postgres
postgres@baseubu1210dev:~$ psql
psql (9.1.7)
Type "help" for help.
postgres=#
我已经想出了如何创建一个名为“mydb”的数据库和一个用户“admin”,这样:
postgres=# \du
Role name | List of roles Attributes | Member of
-----------+------------------------------------------------
admin | Superuser, Create role, Create DB | {}
postgres | Superuser, Create role, Create DB, Replication | {}
我还没有弄清楚如何确保用户“admin”可以连接到“mydb”数据库——也许拥有这种权限的人不需要?[在我写的时候,我注意到我可能应该撤销管理员的超级用户权限。]
我真正想知道的是如何从普通用户的 shell连接:
$ psql -U postgres
psql: FATAL: Peer authentication failed for user "postgres"
我误解了关于运行 postgreSQL 的一些不成文的假设,但是几个小时的搜索、查看教程等并没有解决问题。如果有人说这已经得到了回答,我会非常高兴,尤其是如果已经回答了。我假设并希望答案很简单,并感谢您的帮助。
谢谢,格