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