Перезагрузка PostgreSQL после изменений конфигурации


16

Я внес некоторые изменения в pg_hba.conf и хочу, чтобы они вступили в силу. Я нашел несколько мест, где люди говорят, что я могу сказать PostgreSQL о перезагрузке, но в списке есть несколько различных методов, и ни один из них мне пока не подходит.

Самая авторитетная ссылка, которую я нашел, касается команды pg_ctl, но я не уверен, где находится моя папка PGDATA. Я буду продолжать искать.

Я использую PostgreSQL 8.3 в Ubuntu 8.10.

Ответы:


15

Вы можете проверить, где находится ваш PGDATA, подключившись к pg и выполнив команду:

show data_directory;

На убунту это обычно /var/lib/postgresql/8.3/main/.

Также вы можете: /etc/init.d/postgresql-8.3 reload


17

Хотя первоначальный человек, задававший вопрос, подразумевал, что он работает с Ubuntu 8.10, многие люди, использующие более поздние версии Ubuntu, могут также наткнуться здесь. И это на самом деле может работать и с 8.10. Я не знаю, у меня нет никаких 8.10 установок, чтобы попробовать это с ..

Хорошо, давайте перейдем к делу. Таким образом, классный «новый» способ управления сервисами - использовать serviceкоманду. Таким образом, вы можете перезагрузить конфиги с помощью следующей команды:

service postgresql-8.3 reload

естественно , вы должны иметь соответствующие права , так что, скорее всего , необходимо предварять команду с чем - то вроде sudoили su -c rootкак это:

sudo service postgresql-8.3 reload
или
su -c root 'service postgresql-8.3 reload'

PS В документации по Ubuntu предполагается , что что-то, относящееся к этому новому методу, было сделано еще с выпуском 6.10, однако, если я правильно понял, это не было принято в более общее использование до 9.10.


Я обновился за последние два года, так что я попробую это. Спасибо, что держали меня в покое
Дон Киркби

Обычно лучше использовать su -вместо простоsu
x-yuri

5

Вариант 1: из командной строки

su - postgres
/usr/bin/pg_ctl reload

Вариант 2. Использование SQL

SELECT pg_reload_conf();

Использование любой из этих опций не прервет какие-либо активные запросы или соединения с базой данных, таким образом, применяя эти изменения без особого труда.



2

Если вы не хотите перезагружать сервер и просто отправлять сигнал на postgreSQL, просто введите команду:
pg_ctl reload


1

Я наконец нашел технику, которая работает для меня из этой статьи . Команда:

sudo invoke-rc.d postgresql-8.3 reload

Я все еще буду благодарен за отзыв о том, что такое рекомендуемая техника.


1
Если вы используете упакованный PostgreSQL, рекомендуется использовать сценарий пакета - как в этом примере для Ubuntu -. Если вы собрали из исходного кода, используйте pg_ctl.
Магнус Хагандер



-1

ls /etc/init.d/ Посмотрите, что там, смотрите postgresql?

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

/etc/init.d/

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.