PostgreSQL дает пользователю не существует, когда пользователь существует - PullRequest
0 голосов
/ 22 апреля 2020

Для создания пользователя я выполнил следующие запросы:

CREATE DATABASE yourdbname;
CREATE USER username WITH ENCRYPTED PASSWORD 'yourpass';
GRANT ALL PRIVILEGES ON DATABASE yourdbname TO username;

Я проверяю, был ли пользователь создан таким образом:

su postgres
bash-4.2$ psql -h localhost -p 5432
psql (12.2)
Type "help" for help.
postgres=# \du
                                   List of roles
 Role name |                         Attributes                         | Member of 
-----------+------------------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
 username  |                                                            | {}

postgres=# 

А теперь, когда я хочу подключиться:

$psql -h localhost -p 5432 -U username
psql: error: could not connect to server: FATAL:  database "username" does not exist

Кто-нибудь может сказать, как это исправить?

Ответы [ 2 ]

1 голос
/ 22 апреля 2020

По умолчанию psql всегда считает, что имя вашей базы данных по умолчанию совпадает с именем пользователя. Поэтому, чтобы преодолеть это, убедитесь, что вы используете -d dbname при подключении к базе данных.

например ./psql -h localhost -p 5432 -d ваше имя_базы -U имя пользователя

1 голос
/ 22 апреля 2020

Попробуйте:

$ psql -h localhost -p 5432 -U username yourdbname
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...