【忘備録】Homebrew,PostgreSQLインストールからerror対処方法まで

導入に困ったので忘備録として作成中。

Homebrew

PostgreSQLをダウンロースする方法は2つあり、公式サイト経由Homebrew経由があります。どちらでもいいのですがmacを使ってる人は、Homebrew経由でインストールされてる人が多いみたい。

注意:両方からインストールするとエラーの原因になりますので、するならどちらか一方からをお勧めします。(筆者は削除するのに困ったので)

Homebrew とは macOS(またはLinux)用のパッケージマネージャーです。

STEP

ターミナルを開き、コピペからの実行

% /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

ターミナルを開いたら、先ほどコピーしたコマンドを貼り付け、Enterを押します。

STEP

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」に変更されてしまってるのが原因かと。

コメントを残す

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