環境
- 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)
先程作成したデータベース hogehoge
と hogehoge2
がオーナー postgres
で作成されていることが確認できる。
まとめにかえて
PostgreSQL を macOS ( High Sierra ( 10.13.x ) ) にインストールしてユーザ作成 〜 DB 作成まで確認できた。
これで PostgreSQL の実行環境が取り敢えずは整ったので、あとはマニュアルに沿ってテーブル作成するなりしてアプリ作成に利用する。