У меня есть база данных postgres на одном сервере, и мне нужен доступ к ней с другого сервера.
Мне нужно отредактировать файл pg_hba.conf, но теперь я знаю, как отредактировать этот файл. Сервер Centos
Мне нужно добавить в файл следующую строку
host all all 10.0.2.12 255.255.255.255 trust
Я нашел это в var/lib/pgsql/data/
В принципе, я не уверен, как правильно это сделать.
Сначала сделайте резервную копию данного pg_hba.conf
sudo tar cvf /var/tmp/mybackup_pg_hba_conf.tar /var/lib/pgsql/data/pg_hba.conf
Таким образом, у вас будет готовая старая версия, если вы облажались. Приятной особенностью tar-архива является то, что он сохраняет права доступа и каталоги. Итак, когда pg_hba.conf сломан до неузнаваемости. Ты можешь:
cd /
sudo tar xvf /var/tmp/mybackup_pg_hba_conf.tar
Это восстановит резервную копию pg_hba.conf из архива, который вы создали ранее.
Что касается фактической вставки строки:
sudo su -c 'echo "host all all 10.0.2.12 255.255.255.255 trust" >> /var/lib/pgsql/data/pg_hba.conf'
(ПРИМЕЧАНИЕ: команда отредактирована. Спасибо, bortzmeyer!)
Должен это сделать. Обратите внимание, что это просто добавляет строку в pg_hba.conf. Если вам когда-нибудь понадобится его изменить, вы должны использовать настоящий редактор. Как vi. Эта кривая обучения может быть немного крутой, но после того, как вы изучите хотя бы основы, вы сможете быть в полной безопасности практически во всех unix-средах, с которыми вы сталкиваетесь.
Теперь, когда я снова на ходу, вам следует попробовать перезапустить базу данных postgresql. Я считаю, что на машине Centos это делается с помощью:
sudo service postgresql restart
или вы можете просто перезагрузить конфигурацию без перезапуска:
su - postgres
pg_ctl reload
Теперь у вас должна быть возможность получить доступ к базе данных postrgresql на Centos-машинах из 10.0.2.12.
Не забудьте отредактировать postgresql.conf и изменить / добавить строку
listen_addresses = '*'
Postgresql по умолчанию прослушивает localhost