How do I login and authenticate to Postgresql after a fresh install?
在薄荷ubuntu上新安装了postgres 8.4。 如何使用psql为postgres创建用户并登录?
当我输入psql时,它只是告诉我
1 | psql: FATAL: Ident authentication failed FOR USER"my-ubuntu-username" |
您可以使用两种方法。两者都需要创建用户和数据库。
默认情况下,psql使用与用户相同的名称连接到数据库。因此,有一个惯例,使"用户的数据库"。如果您的用户只需要一个数据库,则没有理由违反该约定。我们将使用
使用createuser和createdb,我们可以明确地说明数据库名称,
1 2 3 | $ sudo -u postgres createuser -s $USER $ createdb mydatabase $ psql -d mydatabase |
您应该完全省略它,并将所有命令默认为用户名。
1 2 3 | $ sudo -u postgres createuser -s $USER $ createdb $ psql |
使用SQL管理命令,并通过TCP连接密码
1 | $ sudo -u postgres psql postgres |
然后,在psql shell中
1 2 | CREATE ROLE myuser LOGIN PASSWORD 'mypass'; CREATE DATABASE mydatabase WITH OWNER = myuser; |
然后你可以登录,
1 | $ psql -h localhost -d mydatabase -U myuser -p <port> |
如果你不知道端口,你总是可以通过运行以下命令来获得它,作为
1 | SHOW port; |
要么,
1 | $ grep"port =" /etc/postgresql/*/main/postgresql.conf |
旁注:
我建议不要修改
默认情况下,您需要使用postgres用户:
1 | sudo -u postgres psql postgres |
您得到的错误是因为您的-ubuntu-username不是有效的Postgres用户。
你需要告诉psql使用什么数据库用户名
1 | psql -U postgres |
您可能还需要指定要连接的数据库
1 | psql -U postgres -d <dbname> |
你也可以作为"普通"用户(而不是postgres)连接到数据库:
1 2 3 4 5 | postgres=# \CONNECT opensim Opensim_Tester localhost; Password FOR USER Opensim_Tester: You are now connected TO DATABASE"opensim" AS USER"Opensim_Tester" ON host"localhost" at port"5432" |
如果数据库客户端使用TCP / IP连接,并且在pg_hba.conf中配置了ident auth,请检查是否已安装并运行identd。即使您只有本地客户端连接到"localhost",这也是必需的。
还要注意,现在identd可能必须启用IPv6才能使Postgresql欢迎连接到localhost的客户端。