Не удалось подключиться к Postgres 17 на localhost Ubuntu 24.04

Вопрос или проблема

Я пытаюсь войти в psql, используя sudo -u postgres psql в терминале на локальном компьютере, но пароль по умолчанию, такой как postgres, не работает. Также я заметил, что порт по умолчанию теперь 5433 вместо старого 5432 в предыдущих версиях. Пожалуйста, сообщите мне пароль, если вам известен этот пароль.

Попытки подключения от клиентов, таких как DBeaver, также потерпели неудачу из-за этой же проблемы.

xander@workstation:/usr/lib/postgresql/17$ sudo -u postgres psql
Пароль для пользователя postgres:
psql: ошибка: подключение к серверу по сокету "/var/run/postgresql/.s.PGSQL.5433" не удалось: СМЕРТЕЛЬНАЯ ОШИБКА: аутентификация пароля не удалась для пользователя "postgres"

Фрагмент из postgresql.conf:

# - Настройки подключения -

listen_addresses="localhost"      # на каком IP-адресе(ах) слушать;
                    # список адресов через запятую;
                    # по умолчанию 'localhost'; используйте '*' для всех
                    # (изменение требует перезапуска)
port = 5433             # (изменение требует перезапуска)
max_connections = 100

Фрагмент из pg_hba.conf:

# Вход администратора базы данных через сокет Unix
local   all             postgres                                peer

# ТИП  БАЗА ДАННЫХ     ПОЛЬЗОВАТЕЛЬ        АДРЕС                 МЕТОД

# "local" предназначен только для подключений по сокету Unix
local   all             all                                     peer
# Локальные соединения IPv4:
host    all             all             127.0.0.1/32            scram-sha-256
# Локальные соединения IPv6:
host    all             all             ::1/128                 scram-sha-256
# Разрешить подключения репликации с localhost, для пользователя с
# привилегией репликации.
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            scram-sha-256
host    replication     all             ::1/128                 scram-sha-256

Заранее спасибо!

Ответ или решение

Для решения проблемы с подключением к PostgreSQL 17 на Ubuntu 24.04 через локальный хост, давайте рассмотрим несколько аспектов, которые могут помочь вам устранить возникшую ошибку.

1. Проверка пароля для пользователя postgres

Стандартный пароль для пользователя postgres обычно не устанавливается во время установки PostgreSQL. Вместо этого для административного доступа к базе данных по умолчанию используется метод аутентификации, который основан на пользователе операционной системы. В вашем случае используется метод peer для местных подключений, что означает, что для успешного входа просто необходимо быть пользователем postgres в системе, и пароль может не требоваться.

2. Проверьте файл конфигурации pg_hba.conf

Согласно вашему фрагменту файла pg_hba.conf, вы используете:

local   all             postgres                                peer

Это означает, что для подключения через локальный сокет пользователю postgres необходимо авторизоваться как системный пользователь postgres. Вам не нужно вводить пароль.

Если вы хотите подключаться с паролем, вам нужно изменить метод аутентификации. Например, измените строку для postgres на md5, как показано ниже:

local   all             postgres                                md5

После внесения изменений не забудьте перезапустить сервер PostgreSQL:

sudo systemctl restart postgresql

3. Подключение к серверу на правильном порту

Вы упомянули, что по умолчанию порт изменился на 5433. Если вы используете клиентские приложения (например, DBeaver), убедитесь, что они также настроены на подключение к порту 5433. В терминале вы можете использовать следующую команду для подключения к нужному порту:

sudo -u postgres psql -p 5433

4. Аутентификация через DBeaver

Если вы хотите подключиться через DBeaver или другой клиент, убедитесь, что:

  • Вы используете порт 5433.
  • Метод аутентификации соответствует тому, что вы установили в pg_hba.conf.
  • Если вы изменили аутентификацию на md5, убедитесь, что у вас есть правильный пароль. Если вы не помните пароль, вы можете его сбросить с помощью:
    sudo -u postgres psql

    Затем введите следующую команду для установки нового пароля (замените new_password на ваш новый пароль):

    ALTER USER postgres PASSWORD 'new_password';

5. Проверка статуса сервера

Убедитесь, что сервер PostgreSQL запущен, выполнив:

sudo systemctl status postgresql

Если он не запущен, используйте следующую команду для его запуска:

sudo systemctl start postgresql

Заключение

Следуя указанным шагам, вы должны быть в состоянии подключиться к своей базе данных PostgreSQL. Если у вас возникли дополнительные вопросы, не стесняйтесь их задавать. Удачи!

Оцените материал
Добавить комментарий

Капча загружается...