MacでPostgreSQLを利用する方法(インストールからDB作成まで)


はじめに

現在のDBMS(Database Management System)において主流となっているRDS(Relational Database)ですが、
そこで利用されているのがSQL(Structured Query Language)という言語です。
代表的なものといえば、

・Oracle Database(Oracle社)
・SQL Server(Microsoft社)
・DB2(IBM社)
PostgreSQL(オープンソース) ←今回扱います
・MySQL(オープンソース、現在はOracle社が開発元)

が挙げられると思います。

私自身もPF制作でRDSとしてMySQLを利用していましたが、ほとんどRailsの機能に頼ってしまっており、
そこで実際に発行されているSQLの扱いについてはあまり自信がない状態でしたので、
この度基本からしっかり学びたいと考え、以下の書籍を用いて学習を始めました。

(表紙は紫のキリンのシルエットが目印です。)

SQLに関する内容がわかりやすく丁寧に説明されており、コマンドの書き方も実際に手を動かしながら学べる構成となっているため、
個人的にかなりオススメの書籍となっています。

しかし、最初のPostgreSQLの導入部分がWindows版のみで説明されていたため、Mac利用者の私は少々手こずることとなりました。
そのため今回は、MacでPostgreSQLをインストールし、実際に利用できるまでを解説したいと思います。

説明

早速順を追って説明していきたいと思います。
今回は現時点(2021年6月)での最新版であるバージョン13.3を導入したいと思います。
ちなみに使用しているMacのOSはmacOS Big Sur バージョン11.4です。

インストール

まずはPostgreSQLのホームページに移動します。

トップ画面を開いたら、上部メニューのDownloadを選択します。

今回はMacにインストールするため、macOSを選択します。

最上部のDownload the installerをクリックします。

インストールするバージョンを選択します。
(今回はVersion 13.3Mac OS Xを選択)

ダウンロードされたZIPファイルを解凍し、解凍されたpostgresql-13.3-1-osxファイルを開きます。
セットアップウィザードが起動しますので、Nextを選択します。

今回は全てのコンポーネントをインストールするため、全てにチェックをつけてNextを選択します。

データを格納するディレクトリを選択します。
基本的にデフォルトのままでOKです。

データベース接続時のパスワードを設定し、Nextで先に進みます。
(主に後述のpgAdmin4およびSQL Shell (psql)の部分で必要になります。)

ポート番号はデフォルト(5432)のままでOKです。

デフォルトの文字コード選択画面では、ja_JP.UTF-8を選択し、Nextで先に進みます。

確認画面が表示されます。内容を確認し問題がなければNextで先に進みます。

Nextでインストールを開始します。終了したらFinishでウィザードを終了します。

続いて、PostgreSQL13のpgAdmin4を開きます。

開くとパスワードを要求されるので、インストールの際に設定したパスワードを入力します。

続いて、左上のServersをクリックすると再びパスワードを要求されるので、
先ほどと同じパスワードを入力します。

パスワードを入力すると以下の画面となり、サーバーが起動します。
(pgAdmin4での作業はこれで終了です。)

次にPATHの設定をします。「~/.bash_profile」ファイルにパスを追加します。
ターミナルで以下のコマンドを実行します。

$ echo 'export PATH=$PATH:/Library/PostgreSQL/11/bin' >> ~/.bash_profile

そして「~/.zprofile」ファイルにもパスを追加します。
ターミナルで以下のコマンドを実行します。

$ echo 'export PATH=$PATH:/Library/PostgreSQL/11/bin' >> ~/.zprofile

上記のコマンドを実行したら、一度ターミナルを再起動し、
postgres --versionでバージョンの確認をします。
以下のように表示されていればOKです。

postgres (PostgreSQL) 13.3

インストール編は以上となります。

起動

PostgreSQLのインストールが完了しましたので、
実際にコマンドを起動してデータベースを作成するまでの手順を説明します。

まず、SQL Shell (psql)を起動します。

すると下画像のようなターミナルが出現します。

コネクトするサーバーはほぼデフォルトで問題ありませんので、
Database [postgres]:Password for user postgres: 以外の項目は
何も入力しないでEnterでOKです。
Database [postgres]:の項目は作成したいDB名、Password for user postgres:
インストール時に設定したパスワードを入力します。
今回は私が利用している書籍の内容に則り、shopというDBを作成したいと思います。

(Password for user postgres:入力時、画面には入力内容が表示されませんが、
内部で正常に入力されていますので気にせず入力しましょう。)

DBの作成に成功すると、
Password for user postgres:の真下に下記のコマンドが表示されると思います。

Welcome to psql X.X.X, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

shop=#

これでDBの作成は完了です。
以降はコマンド入力でテーブルの作成等できるようになっていると思いますので、
各自の利用内容に沿って進めていただければと思います。

終了

最後に、終了方法についてです。
今回使用したSQL Shell (psql)およびpgAdmin4それぞれに終了方法がありますので、
紹介します。

SQL Shell (psql) の終了方法

まず、SQL Shell (psql)ですが、こちらは専用ターミナルでquitのコマンドを打てばOKです。
下画像のように、再下段に「プロセスが完了しました」と表示されます。

pgAdmin4 の終了方法

続いて、pgAdmin4ですが、下画像のようにPostgreSQL 13の部分を右クリックし、
出てきたメニューでDisconnect Serverを選択します。

確認画面が表示されるので、OKをクリックします。

下画像のようにサーバーが切断されたのを確認したら、pgAdmin4のプロセスを終了します。

※ 上記の方法でサーバーを切断する前は、pgAdmin4のプロセスを終了することができません。
(一応「強制終了」で終了させることができますが、PCが異常発熱したりすることもある(実証済)ため、
面倒でも上記の方法で終了させることをお勧めします。

おわりに

今回はMacでのPostgreSQLの導入方法について紹介しました。
もしかすると導入するバージョンにより多少の相違があるかもしれませんが、
是非参考にしていただければと思います。

参考文献

https://mrradiology.hatenablog.jp/entry/2020/08/06/173523
https://lets.postgresql.jp/documents/tutorial/macosx/2