macOSでのPostgreSQL再起動:トラブルシューティング時の役立つヒント
macOSでPostgreSQLを再起動する方法
方法
macOSでPostgreSQLを再起動するには、以下の2つの方法があります。
Homebrewを使用する場合
HomebrewでPostgreSQLをインストールしている場合は、以下のコマンドを使用して再起動できます。
brew services restart postgresql
pg_ctlコマンドを使用する場合
Homebrewを使用していない場合、または別の方法でPostgreSQLをインストールしている場合は、pg_ctl
コマンドを使用して再起動できます。
sudo pg_ctl -d /usr/local/var/postgres -l /usr/local/var/postgres/postgresql.log restart
上記のコマンドを実行する前に、postgres
ユーザーとしてログインしていることを確認してください。
postgresql.log
は、PostgreSQLサーバーのログファイルのデフォルトの名前です。この名前が異なる場合は、コマンドラインで置き換える必要があります。/usr/local/var/postgres
は、PostgreSQLのデータディレクトリのデフォルトの場所です。このパスが異なる場合は、コマンドラインで置き換える必要があります。
brew services restart postgresql
このコマンドは、Homebrewを使用してPostgreSQLをインストールした場合に使用します。このコマンドを実行すると、HomebrewはPostgreSQLサーバーを停止してから再起動します。
sudo pg_ctl -d /usr/local/var/postgres -l /usr/local/var/postgres/postgresql.log restart
macOSには、システムサービスを管理するためのグラフィカルツールが用意されています。このツールを使用して、PostgreSQLサーバーを起動、停止、再起動することができます。
手順:
- アプリケーションを開きます。
- 「iStat Server」を開きます。
- 左側のメニューバーにある「サービス」タブをクリックします。
- サービスリストの中から「postgresql-9.6」を探します。
- 「postgresql-9.6」サービスを右クリックし、「再起動」を選択します。
psqlコマンドは、PostgreSQLデータベースと対話するために使用できるコマンドラインツールです。このツールを使用して、PostgreSQLサーバーを再起動することもできます。
- ターミナルを開きます。
- 以下のコマンドを実行します。
sudo psql -h localhost -U postgres -c "SELECT pg_ctl_restart();"
- PostgreSQL 9.6以外のバージョンを使用している場合は、コマンドの冒頭にある
postgresql-9.6
を適切なバージョン名に置き換える必要があります。
LaunchAgentを使用する
LaunchAgentは、macOSで自動的にアプリケーションやサービスを起動するために使用できるファイルです。この方法を使用して、PostgreSQLサーバーを再起動するようにLaunchAgentを設定することができます。
- 以下の内容の
com.postgresql.postgres.plist
ファイルを作成します。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTD/plist.dtd">
<plist version="1.0">
<LaunchAgent>
<Label>com.postgresql.postgres</Label>
<ProgramArguments>
/usr/local/bin/postgres
-D /usr/local/var/postgres
</ProgramArguments>
<RunAtLoad>true</RunAtLoad>
<KeepAlive>true</KeepAlive>
</LaunchAgent>
</plist>
- このファイルを
~/Library/LaunchAgents
ディレクトリに保存します。 - 以下のコマンドを実行して、LaunchAgentを有効にします。
launchctl load ~/Library/LaunchAgents/com.postgresql.postgres.plist
macos postgresql