在薄荷ubuntu上做了新的postgres 8.4安装。如何为postgres创建用户并使用psql登录?
当我输入psql时,它只是告诉我
psql: FATAL: Ident authentication failed for user "my-ubuntu-username"
Answers:
您可以使用两种方法。两者都需要创建一个用户和一个数据库。
默认情况下,psql以与用户相同的名称连接到数据库。因此,有一个约定使之成为“用户的数据库”。如果您的用户只需要一个数据库,则没有理由违反该约定。我们将使用mydatabase
示例数据库名称作为示例。
使用createuser和createdb,我们可以明确显示数据库名称,
$ sudo -u postgres createuser -s $USER
$ createdb mydatabase
$ psql -d mydatabase
您可能应该完全忽略这一点,而是让所有命令默认为用户名。
$ sudo -u postgres createuser -s $USER
$ createdb
$ psql
使用SQL管理命令,并通过TCP连接密码
$ sudo -u postgres psql postgres
然后,在psql shell中
CREATE ROLE myuser LOGIN PASSWORD 'mypass';
CREATE DATABASE mydatabase WITH OWNER = myuser;
然后您可以登录,
$ psql -h localhost -d mydatabase -U myuser -p <port>
如果您不知道该端口,则可以始终以postgres
用户身份运行以下命令来获取它:
SHOW port;
要么,
$ grep "port =" /etc/postgresql/*/main/postgresql.conf
postgres
用户我建议不要修改postgres
用户。
postgres
。您应该具有root身份才能验证为postgres
。postgres
与SQL Server等效的PostgreSQL登录SA
,您必须具有对基础数据文件的写访问权。而且,这意味着您通常无论如何都可以破坏。sudo -u postgres psql postgres
?我知道这sudo
意味着root特权,-u postgres
意味着以用户身份登录postgres
,psql
是要连接的命令postgresql
,但是最后postgres
做什么?
默认情况下,您需要使用postgres用户:
sudo -u postgres psql postgres
您收到的错误是因为your-ubuntu-username不是有效的Postgres用户。
您需要告诉psql使用哪个数据库用户名
psql -U postgres
您可能还需要指定要连接的数据库
psql -U postgres -d <dbname>
psql -U myuser -d mydb
工作完美,同时psql -U myuser
尝试使用对等身份验证,谢谢!
使用postgres用户或我们创建的任何其他用户登录之间的主要区别在于,使用postgres用户时,无需使用-h指定主机,而如果使用,则可以指定其他用户。
$ psql -U postgres
# CREATE ROLE usertest LOGIN PASSWORD 'pwtest';
# CREATE DATABASE dbtest WITH OWNER = usertest;
# SHOW port;
# \q
$ psql -h localhost -d dbtest -U usertest -p 5432
GL