Edited at

[macOS High Sierra][Homebrew] PostgreSQL のインストールからDB作成まで


環境


  • macOS High Sierra ( 10.13.x )

  • Ruby v2.3.4p301

  • Homebrew v1.5.4

  • PostgreSQL v10.2


Homebrewのインストール

コマンドラインから次のコマンドを実行してインストール。

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"


PostgreSQLのインストール

Homebrew で PostgreSQL をインストール。

$ brew install postgresql


PostgreSQLのサービス自動起動と停止


自動起動

次に示すコマンドで PostgreSQL の自動起動を設定する。

これによって PostgreSQL が起動し、macOS の再起動〜ログインした際にも PostgreSQL が自動で起動する設定となる。

$ brew services start postgresql


停止

PostgreSQL の停止、並びに自動起動をやめたい場合は次のコマンドを実行する。

$ brew services stop postgresql


ユーザ作成

$ psql -U${USER} postgres

で PostgreSQL にログイン。

ここで、環境変数 ${USER} は PostgreSQL をインストールした際の macOS のログインユーザである。${USER} は PostgreSQL に対してスーパーユーザとして作成されていて、このユーザをそのまま使うのは良くないので、

postgres=# create user postgres with SUPERUSER;

CREATE ROLE

で OS のユーザとは別に操作用のユーザ postgres を作成する。

この時 with SUPERUSER を指定して、作成するユーザにスーパーユーザー権限を与えている点に注目。

ここで with SUPERUSER 付きで作成しないとDB作成権限等の特別な権限が付与されない。


DB接続

先ほど作成したユーザでログインできるかを確認する。

$ psql -Upostgres

次の表示が出たらログイン成功。

psql (10.2)

Type "help" for help.

postgres=#

さらに

postgres=# \l

List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+---------------------------
postgres | ${USER} | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | ${USER} | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/"${USER}" +
| | | | | "${USER}"=CTc/"${USER}"
template1 | ${USER} | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/"${USER}" +
| | | | | "${USER}"=CTc/"${USER}"
(3 rows)

psql メタコマンドである ¥l を入力してデータベースのリストが取得できることを確認。


DB作成

コマンドラインから作成する方法と PostgreSQL にログインして作成する方法を示す。


コマンドラインから作成する方法

コマンドラインからオーナーに postgres を指定してデータベース hogehoge を作成。

$ createdb hogehoge -O postgres;


  • -O [オーナー] or (--owner)


    • 作成するデータベースの所有者となるユーザを指定




PostgreSQL にログインして作成する方法

PostgreSQL にログインしてオーナーに postgres を指定してデータベース hogehoge2 を作成。

$ psql -Upostgres

psql (10.2)
Type "help" for help.

postgres=# create database hogehoge2 owner=postgres;
CREATE DATABASE


データベースの一覧を確認

前掲の psql メタコマンド ¥l でデータベースの一覧を確認すると

postgres=# \l

List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+---------------------------
hogehoge | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
hogehoge2 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
postgres | ${USER} | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | ${USER} | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/"${USER}" +
| | | | | "${USER}"=CTc/"${USER}"
template1 | ${USER} | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/"${USER}" +
| | | | | "${USER}"=CTc/"${USER}"
(4 rows)

先程作成したデータベース hogehogehogehoge2 がオーナー postgres で作成されていることが確認できる。


まとめにかえて

PostgreSQL を macOS ( High Sierra ( 10.13.x ) ) にインストールしてユーザ作成 〜 DB 作成まで確認できた。

これで PostgreSQL の実行環境が取り敢えずは整ったので、あとはマニュアルに沿ってテーブル作成するなりしてアプリ作成に利用する。


参考