psql ищет базу данных и пользователя на сервере через имя учетной записи
Через терминал Linux ввожу команду psql просит пароль для пользователя с именем моей учетной записи. Ввожу пароль - ошибка. Далее создаю такого пользователя с паролем. Далее повторяю все то же самое - уже другая ошибка, в этот раз, что базы данных с названием моей учетной записи не существует.
Подскажите, что вообще происходит и почему сервер postgresql ищет что-то, связанное с учеткой?
Пример прилагаю:
USERNAME@PC_name:~$ psql
Password for user USERNAME: #пароль
psql: error: connection to server on socket "var/run/postgresql/.s.PGSQL.5432"
failed: FATAL: password authentication failed for user "USERNAME"
#Создан пользователь и пароль в клиенте postgresql
USERNAME@PC_name:~$ psql
Password for user USERNAME: #пароль
psql: error: connection to server on socket "var/run/postgresql/.s.PGSQL.5432"
failed: FATAL: database "USERNAME" does not exist
Ответы (1 шт):
Утилита psql не располагает знаниями по базе данных и по умолчанию соединяется с базой данных из под текущей учетной записью и пытается найти базу данных для данной учетной записи. Поэтому обычно первичная настройка требует переключиться в терминале на пользователя по умолчанию postgres, для которого создавался пароль sudo -i -u postgres.
The default database user name is your operating-system user name. Once the database user name is determined, it is used as the default database name.
Можно указать явно, как подключаться и куда через параметры: psql -d <database> -U <username>. Еще для первичной настройки, если вам нужен доступ не только локально, но и удаленно, нужно будет настроить файл pg_hba.conf
P.S> Тоже самое как в ссылках выше, но на русском языке:
- https://postgrespro.ru/docs/postgresql/15/app-psql (прочтите раздел "Подключение к базе данных", там много полезного)
- https://postgrespro.ru/docs/postgresql/15/auth-pg-hba-conf