Назад | Перейти на главную страницу

Я переместил свою базу данных на новый сервер, но теперь пользователи не могут получить доступ к новой БД, как мне это исправить?

Итак, как я уже упоминал в прошлом вопросе, я переместил базу данных на новый сервер, но старый код не может получить доступ к базе данных. Ошибка запроса, если это помогает:

Warning: pg_connect(): Unable to connect to PostgreSQL server: FATAL: password authentication failed for user someuser

Теперь, из того, что я прочитал в Интернете, правильно ли я считаю, что для этого требуется изменение файла pg_hba.conf. Но! Я не могу найти этот файл. Мой кластер базы данных хранится в /var/lib/postgresql/9.0, но там нет файла pg_hba! Кто-то мог переместить его из каталога по умолчанию и сохранить неизвестно где.

Итак, мой вопрос в том, могу ли я исправить проблему пользователя, не прошедшего аутентификацию, отредактировав файл pg_hba (я думал, что когда вы выполнили pg_dump и восстановили БД, аутентифицированные пользователи придут с ним, но, возможно, это неправильно), и если Мне нужен доступ к файлу pg_hba, как его найти?

Я использую ubuntu, если это помогает. Спасибо за все.

Да, вам нужен файл pg_hba.conf со старого сервера базы данных. При сбросе и восстановлении базы данных этот файл не копируется; все, что он делает, это сбрасывает и восстанавливает структуры таблиц и данные, которые они содержат.

Файл pg_hba.conf должен находиться в каталоге данных; при установке по умолчанию (по крайней мере, на SuSE) это будет /var/lib/pgsql/data/pg_hba.conf. По вашему думаю это будет /var/lib/postgresql/9.0/pg_hba.conf

Вы также захотите взять старый postgresql.conf и также поместить его в /var/lib/postgresql/9.0.

Вы можете запустить

найти / -имя pg_hba.conf

для поиска файлов с именем pg_hba.conf во всей файловой системе

После размещения этого файла вы должны перезагрузить Postgres, чтобы он вступил в силу.

/etc/init.d/postgresql перезагрузить