PostgreSQL(ポストグレス)は、高機能で人気のあるオープンソースのデータベースです。
Macでは主に以下の3つの方法でインストール・起動が行われます:
- Homebrewを使ってインストール・操作(開発者に人気)
- 公式アプリ(Postgres.app)でGUI管理(初心者におすすめ)
- コマンドラインで直接制御(上級者向け)
この記事では、それぞれの方法での「起動・停止・再起動」手順を紹介し、トラブル時の対処法まで解説します。
方法1:Homebrew経由でインストールした場合

前提:Homebrewがインストールされている
# Homebrewがない場合は以下でインストール
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# PostgreSQLのインストール
brew install postgresql
基本的な操作コマンド
PostgreSQLの起動
brew services start postgresql
特徴:
- macOSの起動時に自動起動するようになります
- バックグラウンドで常駐するサービスとして動作
- 一度設定すれば、再起動後も自動で起動
実行例:
$ brew services start postgresql
==> Successfully started `postgresql` (label: homebrew.mxcl.postgresql)
PostgreSQLの停止
brew services stop postgresql
使う場面:
- PostgreSQLを完全に停止したいとき
- メモリを節約したいとき
- 他のデータベースを使うとき
実行例:
$ brew services stop postgresql
Stopping `postgresql`... (might take a while)
==> Successfully stopped `postgresql` (label: homebrew.mxcl.postgresql)
PostgreSQLの再起動
brew services restart postgresql
使う場面:
- 設定ファイルを変更した後
- データベースがおかしくなったとき
- エラーからの復旧時
サービスの状態確認
# すべてのサービスの状態を確認
brew services list
# PostgreSQLのみの状態確認
brew services list | grep postgresql
表示例:
$ brew services list
Name Status User File
postgresql started user ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
redis stopped
nginx stopped
複数バージョンがある場合
インストールされているバージョンの確認
# インストール済みのPostgreSQLを確認
brew list | grep postgresql
# 利用可能なバージョンを確認
brew search postgresql
バージョンを指定して操作
# PostgreSQL 14を起動
brew services start postgresql@14
# PostgreSQL 15を起動
brew services start postgresql@15
# 現在動いているバージョンを確認
brew services list | grep postgresql
注意:
- 同時に複数バージョンを起動すると、ポート競合が発生することがある
- 使用するバージョンを決めて、そのバージョンのみを起動することを推奨
自動起動の設定
自動起動を有効にする
# PostgreSQLを起動し、自動起動も設定
brew services start postgresql
# または明示的に自動起動のみ設定
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
自動起動を無効にする
# PostgreSQLを停止し、自動起動も無効化
brew services stop postgresql
# または明示的に自動起動のみ無効化
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
方法2:Postgres.app(GUIアプリ)を使う場合

Postgres.appとは?
特徴:
- PostgreSQL公式が提供するMac専用のオールインワン環境
- GUIで簡単に起動・停止できる
- 複数バージョンの管理が簡単
- 開発者や学習者に人気
インストール方法
- Postgres.app公式サイトにアクセス
- 「Download」ボタンからアプリをダウンロード
- ダウンロードしたファイルを「アプリケーション」フォルダに移動
基本的な操作方法
起動方法
1. アプリケーションフォルダから「Postgres」をダブルクリック
2. メニューバーに象のアイコンが表示される
3. アイコンが緑色になれば起動完了
確認方法:
- メニューバーのアイコンをクリック
- 「数字(ポート番号)」が表示されていれば起動中
停止方法
1. メニューバーの象のアイコンをクリック
2. 「Quit Postgres」を選択
3. アイコンが消えれば停止完了
データベースサーバーの個別操作
1. Postgres.appのメイン画面を開く
2. 各サーバー(バージョン)の右側にある「Start」「Stop」ボタンをクリック
3. 状態が「Running」または「Stopped」で確認
複数バージョンの管理
新しいバージョンの追加
1. メイン画面の「+」ボタンをクリック
2. 「Create New Server」を選択
3. PostgreSQLバージョンを選択
4. ポート番号を設定(デフォルトから変更推奨)
5. 「Create Server」をクリック
バージョン間の切り替え
1. 使用したいバージョンのサーバーを「Start」
2. 不要なバージョンのサーバーを「Stop」
3. 接続先のポート番号を変更(アプリケーション側で設定)
PATH設定(重要)
Postgres.appを使う場合、コマンドラインからPostgreSQLを使うためにPATHを設定する必要があります。
一時的な設定
export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"
永続的な設定
# ~/.zshrc ファイルに追加(zshを使用の場合)
echo 'export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"' >> ~/.zshrc
# 設定を反映
source ~/.zshrc
# ~/.bash_profile ファイルに追加(bashを使用の場合)
echo 'export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile
設定確認
# PostgreSQLのコマンドが使えるか確認
which psql
# 結果例: /Applications/Postgres.app/Contents/Versions/14/bin/psql
# バージョン確認
psql --version
# 結果例: psql (PostgreSQL) 14.9
方法3:コマンドラインで直接制御する(上級者向け)

基本的なコマンド
PostgreSQLの起動
pg_ctl -D /usr/local/var/postgres start
PostgreSQLの停止
pg_ctl -D /usr/local/var/postgres stop
PostgreSQLの再起動
pg_ctl -D /usr/local/var/postgres restart
ステータス確認
pg_ctl -D /usr/local/var/postgres status
パラメータの説明
-D オプション(データディレクトリ)
# Homebrewでインストールした場合の典型的なパス
-D /usr/local/var/postgres
# Apple Silicon Mac(M1/M2)の場合
-D /opt/homebrew/var/postgres
# Postgres.appの場合
-D ~/Library/Application\ Support/Postgres/var-14
その他の有用なオプション
# ログファイルを指定して起動
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/log/postgres.log start
# 強制停止
pg_ctl -D /usr/local/var/postgres stop -m immediate
# 穏やかな停止(接続中のセッションを待つ)
pg_ctl -D /usr/local/var/postgres stop -m smart
設定ファイルの場所
主要な設定ファイル
# postgresql.conf(メイン設定)
/usr/local/var/postgres/postgresql.conf
# pg_hba.conf(認証設定)
/usr/local/var/postgres/pg_hba.conf
# pg_ident.conf(ユーザーマッピング)
/usr/local/var/postgres/pg_ident.conf
設定ファイルの編集例
# 設定ファイルを編集
nano /usr/local/var/postgres/postgresql.conf
# 編集後は再起動が必要
pg_ctl -D /usr/local/var/postgres restart
接続テストと基本操作
接続確認
基本的な接続
# デフォルトデータベースに接続
psql
# 特定のデータベースに接続
psql -d データベース名
# 特定のポートに接続
psql -p 5432
# ユーザーを指定して接続
psql -U ユーザー名
接続情報の確認
-- PostgreSQL内で実行
SELECT version(); -- バージョン確認
\l -- データベース一覧
\du -- ユーザー一覧
\q -- 終了
基本的なデータベース操作
データベースの作成・削除
# データベース作成
createdb myapp_development
# データベース削除
dropdb myapp_development
ユーザー作成
# 新しいユーザーを作成
createuser --interactive myuser
# スーパーユーザーを作成
createuser --superuser myuser
よくあるエラーと対処法
エラー1:データベースが起動しない
症状
$ brew services start postgresql
Error: Failure while executing; `/bin/launchctl bootstrap gui/501 /Users/username/Library/LaunchAgents/homebrew.mxcl.postgresql.plist` exited with 5.
原因と対処法
原因1:ポートが競合している
# ポート5432を使っているプロセスを確認
lsof -i :5432
# プロセスを強制終了
kill -9 プロセスID
原因2:データクラスタが壊れている
# データディレクトリを確認
ls -la /usr/local/var/postgres/
# 壊れている場合は再初期化
rm -rf /usr/local/var/postgres
initdb /usr/local/var/postgres
原因3:権限の問題
# データディレクトリの権限を修正
sudo chown -R $(whoami) /usr/local/var/postgres
chmod 700 /usr/local/var/postgres
エラー2:command not found: psql
症状
$ psql
zsh: command not found: psql
対処法
PATHが通っていない場合:
# Homebrewの場合
export PATH="/opt/homebrew/bin:$PATH"
# Postgres.appの場合
export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"
# 永続化(~/.zshrcに追記)
echo 'export PATH="/opt/homebrew/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
エラー3:接続できない
症状
$ psql
psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: No such file or directory
対処法
PostgreSQLが起動していない場合:
# サービスの状態確認
brew services list | grep postgresql
# 起動していない場合は起動
brew services start postgresql
ソケットファイルの問題:
# ソケットファイルの場所を確認
sudo find /tmp -name ".s.PGSQL.*" 2>/dev/null
# 不要なソケットファイルを削除
sudo rm /tmp/.s.PGSQL.*
エラー4:複数のPostgreSQLが競合
症状
# 複数のPostgreSQLが動いている
$ ps aux | grep postgres
user 1234 postgres: main process
user 5678 postgres: main process
対処法
# Homebrewのサービスを停止
brew services stop postgresql
# Postgres.appも停止
# (メニューバーから「Quit Postgres」)
# 手動で起動したプロセスを確認・停止
ps aux | grep postgres
kill プロセスID
エラー5:ログファイルでエラー確認
ログファイルの場所
# Homebrewの場合
tail -f /usr/local/var/log/postgres.log
# Apple Silicon Macの場合
tail -f /opt/homebrew/var/log/postgres.log
# Postgres.appの場合
tail -f ~/Library/Application\ Support/Postgres/var-*/postgresql.log
典型的なエラーメッセージ
FATAL: lock file "postmaster.pid" already exists
→ 既に起動中、または前回の終了が不正
FATAL: could not create shared memory segment
→ メモリ不足、または設定値が大きすぎる
FATAL: database "username" does not exist
→ デフォルトデータベースが存在しない
パフォーマンス設定

基本的な設定調整
postgresql.confの主要設定
# 設定ファイルを編集
nano /usr/local/var/postgres/postgresql.conf
よく調整する設定項目:
# メモリ関連
shared_buffers = 256MB # 共有バッファサイズ
effective_cache_size = 1GB # OSのファイルキャッシュサイズ
work_mem = 4MB # ソート/ハッシュ用メモリ
# 接続関連
max_connections = 100 # 最大接続数
port = 5432 # ポート番号
# ログ関連
log_statement = 'all' # 全SQLをログに記録
log_min_duration_statement = 1000 # 1秒以上のクエリをログ
設定の反映
# 設定変更後は再起動
brew services restart postgresql
# または
pg_ctl -D /usr/local/var/postgres restart
まとめ:使い方別おすすめ操作方法
方法 | 対象者 | メリット | デメリット | おすすめ起動方法 |
---|---|---|---|---|
Homebrew + services | 開発者 | 自動起動可能、コマンドライン統合 | 初期設定が必要 | brew services start postgresql |
Postgres.app | 初心者・GUI派 | 視覚的で簡単、複数バージョン管理 | GUI必須、カスタマイズ制限 | アプリを開くだけ |
pg_ctl | 上級者 | 細かく制御可能、設定柔軟 | 手動操作必要、設定複雑 | pg_ctl -D ディレクトリ start |
選び方の指針
初心者におすすめ
→ Postgres.app – GUIで簡単、学習に集中できる
開発者におすすめ
→ Homebrew + services – 他のツールとの連携がスムーズ
システム管理者におすすめ
→ pg_ctl – 詳細な制御が可能
コメント