私の外部記憶装置

ただの覚え書きです。ちょこちょこ見直して加筆・修正していますが、間違ってるかも😅

【PostgreSQL】起動と停止など


🚨注意点

OS等のコマンドで起動・停止する方法

macOS(Homebrew)

⭐️インストールに以下2種類の書き方があり、同様に起動・停止のコマンドも2種類ある
brew install postgresql@バージョン番号:指定のバージョンがインストールされる
brew install postgresql:バージョン指定無しでインストールした場合、ver.14がインストールされた(2024/3/26時点。最新はver.16)

  • brew services start postgresql@バージョン番号PostgreSQLを起動。OSの再起動でも自動起動する
    brew services start postgresql:(バージョン指定無しでインストールした場合に使える)
  • brew services stop postgresql@バージョン番号PostgreSQLの停止と、自動起動の停止
    brew services stop postgresql:(バージョン指定無しでインストールした場合に使える)
  • brew services list:起動中のサービスの確認

起動失敗と対応の例

Debian

🚨macOSと同様に「バージョン番号指定」の有無で違うと思われるが未確認

  • sudo systemctrl start postgresql@バージョン番号:起動
  • sudo systemctrl stop postgresql@バージョン番号:停止
  • sudo systemctrl restart postgresql@バージョン番号:再起動
  • sudo systemctrl enable postgresql@バージョン番号自動起動の設定
  • sudo systemctrl disable postgresql@バージョン番号自動起動の停止

共通の停止方法(LinuxmacOS

  • ps aux | grep postgres:起動中のプロセスを確認。詳細情報も表示
    ps aux | head -n 1:各項目名を表示
  • kill プロセスID:プロセス終了。SIGTERM(まずこれを試す)
    kill -9 プロセスID:プロセス終了。SIGKILL(🚨最後の手段)
    kill -l:killのシグナル一覧を表示)

PostgreSQLのコマンドで起動・停止する方法

🚨以下の「データベースクラスタのパス(=設定ファイル等の置き場のパス)」が各コマンドで必要になる。(もし該当するディレクトリが無い場合は、
initdb --locale=C -E UTF-8 パスで作る。cf. initdb - PostgreSQL 15文書

  • macOS/opt/homebrew/var/postgres@バージョン番号(デフォルト。以前はパスが違ったらしい。/usr/local/var/postgres
  • Debian/etc/postgres/バージョン番号/main (デフォルトか未確認。バージョン番号は、メジャーの数字のみ)

pg_ctlを使う方法

pg_ctl - PostgreSQL 15文書

  • pg_ctl -D データベースクラスタのパス start:起動
  • pg_ctl -D データベースクラスタのパス stop:停止
  • pg_ctl -D データベースクラスタのパス restart:再起動

postgresを使う方法

postgres - PostgreSQL 15文書
他の方法と違い、フォアグランドでpostgresqlサーバが動き、ターミナルの表示が「postgresqlのログ」になる。
(コマンド入力するには、「別ターミナルを開く」か「表示されるログを別ファイルに保存。cf. 19.3. データベースサーバの起動 - PostgreSQL 15文書」)

  • postgres -D データベースクラスタのパス:起動
    🚨停止方法は、ctrl - c

参考(最新版)

ホーム | Let's POSTGRES
PostgreSQL日本語ドキュメント