Перезавантаження PostgreSQL після зміни конфігурації


16

Я вніс деякі зміни в pg_hba.conf і хочу, щоб вони вплинули. Я знайшов кілька місць, де люди кажуть, що я можу сказати PostgreSQL перезавантажуватися, але є кілька різних методик, перелічених, і жодна з них поки не працює для мене.

Найбільш авторитетна посилання, яку я знайшов, - це команда pg_ctl, але я не впевнений, де моя папка PGDATA. Я буду продовжувати шукати.

Я запускаю PostgreSQL 8.3 на Ubuntu 8.10.

Відповіді:


15

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

show data_directory;

У ubuntu зазвичай /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 reload

/etc/init.d/

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.