導入に困ったので忘備録として作成中。
Homebrew
PostgreSQLをダウンロースする方法は2つあり、公式サイト経由とHomebrew経由があります。どちらでもいいのですがmacを使ってる人は、Homebrew経由でインストールされてる人が多いみたい。
注意:両方からインストールするとエラーの原因になりますので、するならどちらか一方からをお勧めします。(筆者は削除するのに困ったので)
Homebrew とは macOS(またはLinux)用のパッケージマネージャーです。
ターミナルを開き、コピペからの実行
% /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
ターミナルを開いたら、先ほどコピーしたコマンドを貼り付け、Enterを押します。
PostgreSQLのインストール
インストール可能なバージョンを確認
チェックが付いているバージョンは、すでにインストール済み。
% brew search postgresql
==> Formulae
postgresql@10 postgresql@12 postgresql@14 postgresql@16 ✔ postgrest
postgresql@11 postgresql@13 postgresql@15 qt-postgresql
==> Casks
navicat-for-postgresql posture-pal
インストールする
% brew install postgresql
・バージョンを指定してインストールする場合
% brew install postgresql@16
バーションを指定してインストールしたい場合には、postgresql
の後に、@16
をつけることで指定することができます。
バージョンを確認
% psql --version
psql (PostgreSQL) 16.3 (Homebrew)
コマンド一覧
PostgreSQLサーバーの初期化、起動、停止、制御を行うユーティリティのコマンド一覧。
ネットで調べて書いてあることを実行しているが、何をしているのかわからなかったので、いちいち開くのが面倒なので載せておきます。
% pg_ctl --help
pg_ctl --help
を実行した際に表示するHelpの内容。
pg_ctlはPostgreSQLサーバーの初期化、起動、停止、制御を行うユーティリティです。
使用方法:
pg_ctl init[db] [-D DATADIR] [-s] [-o OPTIONS]
pg_ctl start [-D DATADIR] [-l FILENAME] [-W] [-t SECS] [-s]
[-o OPTIONS] [-p PATH] [-c]
pg_ctl stop [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]
pg_ctl restart [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]
[-o OPTIONS] [-c]
pg_ctl reload [-D DATADIR] [-s]
pg_ctl status [-D DATADIR]
pg_ctl promote [-D DATADIR] [-W] [-t SECS] [-s]
pg_ctl logrotate [-D DATADIR] [-s]
pg_ctl kill SIGNALNAME PID
共通のオプション:
-D, --pgdata=DATADIR データベース格納領域の場所
-s, --silent エラーメッセージのみを表示、情報メッセージは表示しない
-t, --timeout=SECS -wオプションを使用する時に待機する秒数
-V, --version バージョン情報を表示して終了
-w, --wait 操作が完了するまで待機 (デフォルト)
-W, --no-wait 作業の完了を待たない
-?, --help このヘルプを表示して終了
-Dオプションの省略時はPGDATA環境変数が使用されます。
起動、再起動のオプション
-c, --core-files postgresのコアファイル生成を許可
-l, --log FILENAME サーバーログをFILENAMEへ書き込む(または追加する)
-o, --options=OPTIONS postgres(PostgreSQLサーバー実行ファイル)または
initdb に渡すコマンドラインオプション
-p PATH-TO-POSTGRES 通常は不要
停止、再起動のオプション
-m, --mode=MODE MODEは"smart"、"fast"、"immediate"のいずれか
シャットダウンモードは以下の通り:
smart 全クライアントの接続切断後に停止
fast 適切な手続きで直ちに停止(デフォルト)
immediate 適切な手続き抜きで停止; 再起動時にはリカバリが実行される
killモードで利用できるシグナル名:
ABRT HUP INT KILL QUIT TERM USR1 USR2
バグは<pgsql-bugs@lists.postgresql.org>に報告してください。
PostgreSQL ホームページ: <https://www.postgresql.org/>
トラブルシューティング
psql: エラー: ソケット”/tmp/.s.PGSQL.5432″のサーバーへの接続に失敗しました: No such file or directory
サーバーはローカルで稼働していてそのソケットで接続を受け付けていますか?
% psql -l
psql: エラー: ソケット"/tmp/.s.PGSQL.5432"のサーバーへの接続に失敗しました: No such file or directory
サーバーはローカルで稼働していてそのソケットで接続を受け付けていますか?
ダウンロードされているかの確認
Homebrew経由でPostgreSQLがインストールされていることが確認できる。
% psql -V
psql (PostgreSQL) 16.3 (Homebrew)
PostgreSQLを起動してみる
% brew services start postgresql
Warning: Formula postgresql was renamed to postgresql@14.
Error: Formula `postgresql@14` is not installed.
バージョンを指定せず起動を試みたところ、警告が表示され「postgresql@14に名前が変更されました」と出てます。
postgresql@16しかインストールしてないので、当然ですがpostgresql@14を起動するわけがありませんよね。
PostgreSQLの起動情報を確認
% brew services list
postgresql@16 error 256 root ~/Library/LaunchAgents/homebrew.mxcl.postgresql@16.plist
postgresql@16
のあとがstared
になってればOKなんですが、error
が出てしまっている。おそらく「postgresql@14」に変更されてしまってるのが原因かと。
https://www.kikagaku.co.jp/kikagaku-blog/homebrew-install-howto