設定変更後のPostgreSQLのリロード


16

pg_hba.confにいくつかの変更を加えて、それらを有効にしたいです。PostgreSQLにリロードするように指示できると人々が言う場所をいくつか見つけましたが、いくつかの異なる手法がリストされており、それらのどれもまだ私のために働きません。

私が見つけた最も信頼できるリファレンスはpg_ctlコマンドに関するものですが、PGDATAフォルダーがどこにあるのかわかりません。私は探し続けます。

Ubuntu 8.10でPostgreSQL 8.3を実行しています。

回答:


15

PGD​​ATAの場所を確認するには、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

当然、あなたは最も可能性が高いようなもので、コマンドを付加するために必要とされるように適切な権限を持っている必要がありますsudosu -c root、このように:

sudo service postgresql-8.3 reload
または
su -c root 'service postgresql-8.3 reload'

PS Ubuntuのドキュメントは、この新しいメソッドに関連する何かが6.10のリリースで以前に行われたことが示唆されていますが、それを正しく理解していれば9.10までより一般的に使用されていませんでした。


過去2年間でアップグレードしたため、これを試してみます。涼しくしてくれてありがとう。
ドンカークビー

これは、使用に一般的にはましだsu -ばかりの代わりにsu
X-ユーリ

5

オプション1:コマンドラインシェルから

su - postgres
/usr/bin/pg_ctl reload

オプション2:SQLの使用

SELECT pg_reload_conf();

どちらのオプションを使用しても、アクティブなクエリやデータベースへの接続が中断されることはないため、これらの変更は無意識に適用されます。


3

これはトリックを行います:

kill -HUP $(head -1 $PGDATA/postmaster.pid)

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/

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.