【忘備録】M1 MacにPostgreSQLをインストールし、ログインする

## はじめに
今回は、M1 MacにPostgreSQLをインストールし、ログインしていきます。

参考にしていた記事や参考書にはWindowsでのインストール方法しか記載がなく、少し手間取ったため忘備録を残しておきます。

# Macのスペック
:::note info
MacBook Air M1, 2020
OS : macOS Ventura Version13.1
チップ：Apple M1
メモリ：8GB 
:::

# PostgreSQLをインストールしていく
主に以下の記事を参考に進めていきました。
この記事によると、「PostgreSQLのインストール方法はいくつかあるが、Homebrewでインストールした方が簡単で、アップデートの際にも問題が起きない」とのことでした。

参考記事

https://sqlpad.io/tutorial/postgres-mac-installation

## STEP1 - Homebrewをインストールする
公式ページのトップにあるコマンドをコピーして実行します。

https://brew.sh/index_ja

```
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```
## STEP2 - PostgreSQLをインストールする
Homebrewのインストールが完了したら、PostgreSQLをインストールしていきます。
以下のコマンドを実行してください。
```
brew install postgresql
```
## STEP3 - PC起動時に自動的にPostgresサーバーを起動するようにする
次に、以下のコマンドを実行すると、PC起動時にPostgresサーバーも起動するようになります。
```
brew services start postgresql
```

## STEP4 - インストールできたか確認する
インストールできたか確認していきましょう。
以下のコマンドを実行してみてください。
```
psql -d postgres
```
実行結果が、次の通りになるとインストールできています。

:::note warn
以下のような結果にならない場合があります。
上記のコマンドを実行すると、パスワードを求められ、
正しいパスワードを入力したにもかかわらず、
エラーが起きることがあります。
__その場合はもう一度STEP2からやり直してみてください。__
:::

```sql:実行結果
psql (14.6 (Homebrew))
Type "help" for help.

postgres=#
```
確認ができたら、接続を切って大丈夫です。
PostgreSQLの接続を切るには、以下の２通りありますのでお好きな方を使ってください。
```
postgres=# \q
```
または
```
postgres=# ¥q
```

## STEP5 - 設定ファイルを変更する
とある参考書によると、設定ファイルの書き換えが必要とのことでした。
これもターミナル上で行っていきます。
まず、PostgreSQLの接続を切ってから、以下のコマンドを実行してください。
```
psql -c 'SHOW config_file' -d postgres
```
そうすると、以下のようにファイルのパスが表示されます。
```
              config_file
-----------------------------------------
/opt/homebrew/var/postgresql@14/postgresql.conf
```
このパスをコピーして、以下のコマンドを実行します。
```
sudo vim /opt/homebrew/var/postgresql@14/postgresql.conf
```
すると、ターミナル上にファイルの中身が以下のように表示されるはずです。
![スクリーンショット 2023-02-02 14.02.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2759696/bc08d92c-fcbd-7751-4b41-6a9c7a0781bd.png)

このファイルの「__listen_addresses='*'__」これを
「__listen_addresses='localhost'__」と変更しましょう。
※私の場合はデフォルトで変更後の状態になっていました。

:::note info
vimのコマンド
iで入力開始
:wで保存
ZZで上書き保存し、vimを終了

さらに知りたい人はこちらの記事がおすすめです。
[よく使う Vim のコマンドまとめ](https://qiita.com/hide/items/5bfe5b322872c61a6896)
:::

## STEP6 - 完了！！
これでインストール、ログインが完了しました！お疲れ様でした😉
試しにもう一度ログインしてみましょう。
今度はデータベース名、ユーザー名を指定してログインしていきます。

ちなみに、「データベースなんてまだ作ってないんだけど」と思った方いるかもしれませんが、
デフォルトで「postgres」というデータベースがすでに準備されています。

また、「ユーザー名なんて設定してないんだけど」と思ったかもしれません。
ちょっと確認してみましょう！

### データーベース一覧とOwnerを確認する
以下のコマンドを実行してみましょう。
```
psql -l
```
すると結果はこのようになるはずです。
```
                              List of databases
   Name    |   Owner    | Encoding | Collate | Ctype |     Access privileges     
-----------+------------+----------+---------+-------+---------------------------
 postgres  | xxxxxxxxxx | UTF8     | C       | C     | 
 template0 | xxxxxxxxxx | UTF8     | C       | C     | =c/xxxxxxxxxx            +
           |            |          |         |       | xxxxxxxxxx=CTc/xxxxxxxxxx
 template1 | xxxxxxxxxx | UTF8     | C       | C     | =c/xxxxxxxxxx            +
           |            |          |         |       | xxxxxxxxxx=CTc/xxxxxxxxxx
```
Ownerの欄に記載がある名前がユーザー名です。

ユーザー名を確認したらこのコマンドを実行してみましょう。
```
psql -d postgres -U ユーザー名
```
以下のような結果になれば、、、再度接続できました！！
```sql
psql (14.6 (Homebrew))
Type "help" for help.

postgres=#
```

# おわり
Windowsでのインストール方法の記載は多かったので少し惑わされてしまいました。
結構違いがあることを学びました😅
いつか誰かのお役に立てたら幸いです。