PostgreSQLのインストール、設定のメモを残します。
はじめに
「PostgreSQL」とはリレーショナルデータベース管理システムの一種です。
他に有名なものでいうと「SQL Server」や「Oracle Database」などがあります。
「PostgreSQL」はオープンソースで無料で利用可能です。
インストーラーのダウンロード
①以下サイトにアクセスします。
https://www.postgresql.org/download/
②インストーラーをダウンロードします。
私の場合はMacを使用しているの「macOS」を選択します。
※Windowの方は以下サイトにまとまっていましたので、そちらを参考にしてください
https://www.dbonline.jp/postgresql/install/index1.html

③「Download the installer」を選択します。
※Macの場合はHome brewでインストールすることも可能です。

④最新のバージョンを選択し、ダウンロードします。

インストール
①インストーラーを起動します。
以下のアラートが表示されるかもしれませんが「開く」を選択します。

②次々とダイアログが表示されますので、設定していきます。
「Next」を選択します。

デフォルトのまま「Next」を選択します。

スーパーユーザのパスワードを設定します。
スーパーユーザ:全ての権限を持っているユーザ
「Retype password」は確認のため同じパスワードを入力し「Next」を選択します。

ポートを指定します。
デフォルトのまま「Next」を選択します。

ロケールの設定をします。私は日本に住んでいるので「ja_JP」を指定し、「Next」を選択します。

これ以降選択するものはなく「Next」を選択していきます。
そうするとインストールが開始されます。
最後に「FInish」を選択し、インストールは完了です。
※「Stack Builder…」にチェックを入れて終えるとStack Builderが起動します。
Stack Builderは追加でツールをインストールしたい場合に利用します。
今回は利用しないので、チェックをはずして「Finish」にすると起動しない方がいいかもです。

セットアップ
ユーザとデータベースを作成していきます。
コマンドラインから作成していきます。
①接続
ターミナルを開いて、ダウンロードしたpostgreSQLのbinフォルダ配下に移動します。
(私の場合:/Library/PostgreSQL/13/bin)
binフォルダ配下で以下のコマンドを実行します。
./psql -U postgres
実行すると、パスワードを求められるのでインストール時に設定したパスワードを入力しEnterを押下します。入力しても以下画像のように入力したことが分からないようになっています

パスワードが正しいと対話モードになります。

②ユーザ作成
スーパーユーザのみ存在しているので他のユーザ権限を作成します。
普段の作業では必要最低限の権限を持っているユーザで作業をしますので、
スーパーユーザは基本使用しません。
以下のコマンドを実行します。
※この辺のコマンドの設定については以下に記載がありますので、参考にしてみてください。
https://www.postgresql.jp/document/12/html/sql-createrole.html
CREATE ROLE appuser LOGIN
ENCRYPTED PASSWORD '任意のパスワード'
NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
実行して「CREATE ROLE」が表示されれば成功です。
③DB作成
以下のコマンドを実行します。
CREATE DATABASE diary
WITH OWNER = 'appuser'
ENCODING = 'UTF8'
LC_COLLATE = 'C'
LC_CTYPE = 'C'
TABLESPACE = 'pg_default'
TEMPLATE = 'template0'
CONNECTION LIMIT = -1;
「実行して「CREATE DATABASE」が表示されれば成功です。」
「\q」でこの対話モードを抜けることが可能です。
上記で実施したDB作成のようなことはGUIでもすることが可能です。
作成したDBができているか確認してみます。
postgreSQLをインストールした中に「pgAdmin 4」が存在すると思いますでの実行します。
(/Library/PostgreSQL/13 配下に存在)

開くと最初はパスワードを設定するダイアログが表示されるのでパスワードを設定します。
設定したパスワードは今後このアプリを開く際に必要となります。

「Server」→「PostgreSQL」を選択すると「postgres」ユーザのパスワードを求められので入力し、OKを選択します。

入力すると以下のような画面になり、作成した「diary」DBが存在することがわかります。
最初は「diary」にバツがついているかもしてませんが、選択すると消えるはずです。

利用ツール
「PgAdmin」はいろいろな情報がわかったり、SQLを実行できるのですが若干重い印象があるので簡単にSQLを実行したい場合は「tableplus」や「A5:SQL Mk-2(Windows専用)」などのフリーツールを利用しています。
【参考文献】
https://proengineer.internous.co.jp/content/columnfeature/6727