Logicky Blog

Logickyの開発ブログです

Windows11にScoopでPostgreSQLを入れる

Windows11にScoopでPostgreSQLを入れます。

Laravel HerdのPRO版を購入して、HerdでPostgreSQLを入れていたのですが、どうもやや不便でした。どこにいるかよく分からないし、psqlが使えないし。もちろんちょっと探したのですが、なんかいないんですよね。。Herdで入れるメリットはそこまでない気もしますので、シンプルにするために、Scoopで入れなおそうと思います。

とりあえず、Laravel HerdのPostgreSQLを止めます。

Scoopでインストール

> scoop install postgresql

サーバの起動

> pg_ctl start -D "C:\Users\dev\scoop\apps\postgresql\current\data"
サーバーの起動完了を待っています....2024-07-26 17:56:43.562 JST [39028] LOG:  starting PostgreSQL 16.3, compiled by Visual C++ build 1938, 64-bit
2024-07-26 17:56:43.566 JST [39028] LOG:  listening on IPv6 address "::1", port 5432
2024-07-26 17:56:43.567 JST [39028] LOG:  listening on IPv4 address "127.0.0.1", port 5432
2024-07-26 17:56:43.633 JST [38124] LOG:  database system was shut down at 2024-07-26 15:22:09 JST
2024-07-26 17:56:43.653 JST [39028] LOG:  database system is ready to accept connections
完了
サーバー起動完了

Windowsサービスとして登録(自動起動の設定)

管理者権限でPowerShellを開きます。

以下のコマンドを実行してサービスを登録します。

   pg_ctl register -N "PostgreSQL" -D "C:\Users\dev\scoop\apps\postgresql\current\data"

サービスの起動タイプを自動に設定します。

   sc.exe config "PostgreSQL" start= auto

これで、Windows起動時にPostgreSQLも起動されます。 また、下記で起動したり、停止したりできます。

   net start PostgreSQL
   net stop PostgreSQL

postgresユーザーのパスワード設定

PostgreSQLのpsqlコマンドラインツールを起動します。

   psql -U postgres

以下のSQLコマンドを実行してパスワードを設定します。

   ALTER USER postgres PASSWORD 'password';

pg_hba.conf の更新

テキストエディタで C:\Users\dev\scoop\apps\postgresql\current\data\pg_hba.conf を開きます。

trust 認証方式を md5 に変更します。例:

   # IPv4 local connections:
   host    all             all             127.0.0.1/32            md5
   # IPv6 local connections:
   host    all             all             ::1/128                 md5

ファイルを保存して閉じます。

PostgreSQLサービスの再起動

変更を反映させるため、サービスを再起動します。

net stop PostgreSQL
net start PostgreSQL