Перезагрузка 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.

Timo
источник
Я обновился за последние два года, так что я попробую это. Спасибо, что держали меня в покое
Дон Киркби
Обычно лучше использовать su -вместо простоsu
x-yuri
5

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

su - postgres
/usr/bin/pg_ctl reload

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

SELECT pg_reload_conf();

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

Михаил Хорожанский
источник
3

Это сделает свое дело:

kill -HUP $(head -1 $PGDATA/postmaster.pid)
nad2000
источник
2

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

ИМ
источник
1

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

sudo invoke-rc.d postgresql-8.3 reload

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

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

Следующие должны сделать это для вас:

sudo /etc/init.d/postgresql-8.3 reload
Эйвери Пэйн
источник
0

В одной строке:

su -c "pg_ctl reload" - postgres
mivk
источник
-1

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

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

/etc/init.d/

Скот
источник