How to Start PostgreSQL Server on Mac OS X via Homebrew

Install PostgreSQL via Homebrew

おそらくほとんどの OS X ユーザーは Homebrew を知っていると思いますが、Homebrew は OS X 用のパッケージマネージャーで、膨大な数のアプリケーションやユーティリティのライブラリを簡単にインストールして実行することができます。

ここでは、Homebrew の (短いながらも) インストールプロセス全体については説明しませんが、Homebrew をインストールして PostgreSQL の管理に使用したい場合は、公式ドキュメントのインストールコマンドを確認してください。 Homebrew がインストールされているかどうかわからない場合は、ターミナルから which brew コマンドを実行して確認してください。

Homebrew がインストールされたら、ターミナルで次のコマンドを発行して、PostgreSQL をインストールすることができます:

$ brew update$ brew doctor$ brew install postgres

最初の 2 つのコマンドは、Homebrew を更新し、潜在的な問題を (必要に応じて) 報告するために使用されます。

インストール中の出力には多くの有用な情報が含まれていますが、その多くは次のセクションで使用するためにコピーしておく必要があります。

起動時に PostgreSQL を起動するために LaunchAgent と plist を使用する

ほとんどの場合、システムを起動したときに PostgreSQL を起動したいと思うでしょうから、それをコンピュータに伝える必要があります。 OS XのLaunchAgentslaunchdが使用するシンプルなスクリプトで、起動時にシステムにプログラムやコードを実行させるものです。

必要に応じて、このコマンドでuserLaunchAgentsディレクトリを作成します。

$ mkdir -p ~/Library/LaunchAgents

ここで、Postgresを実際に実行させるスクリプトから、LaunchAgentsディレクトリへのシンボリックリンクを作成する必要があります。 シンボリック リンクは、別のディレクトリで使用するためにファイルの新しいコピーを作成することに似ていますが、リンクが「シンボリック」であるため、リンクは単なる転送アドレスになります。

Homebrew によって生成された plistLaunchAgents に配置します。

$ ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents

注意: このコマンドが正しいことを再確認してください: Homebrew が Postgres を最初にインストールしたときに、前述のインストール出力の一部であったはずです。

最後に、LaunchAgentlaunchctl load コマンドを使用して新しいシンボリック リンクでロードしますが、これは特に、コンピュータの起動時にこのスクリプトを実行して Postgres を開始するようにコンピュータに通知するものです。

$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

PostgreSQL を手動で起動する

再起動せずに Postgres を手動で起動するには、やはりインストール時に出力されたコマンドを次のように使用することができます。

$ postgres -D /usr/local/var/postgres

これは、daemonモードでPostgresを起動しようとします。つまり、ターミナルを引き継ぐことなく、バックグラウンドプロセスとして実行されます。

Homebrew なしで PostgreSQL を起動/停止する

Postgres 用の Homebrew がない (または使用したくない) 場合でも、Postgres がすでにインストールされていれば、Postgres 自体が提供する起動ユーティリティである pg_ctl を使用して手動で起動することもできます。

これで Postgres が起動します (デフォルトのディレクトリを想定):

$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

そして、これで Postgres が停止します。

pg_ctl -D /usr/local/var/postgres stop -s -m fast

スタートアップのトラブルシューティング。 initdbを実行しましたか?

場合によっては、Postgresの実行に問題がある場合、initdbコマンドを一度でも実行したことを確認してください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です