macOSでPostgreSQLの日本語データベースを作成、ネットワークからアクセス可能にする設定を記録しておこうと思います。
目次
macOSのPostgreSQLインストール手順 Homebrew版
PostgreSQLのインストール
OSはmacOS High Sierra 10.13.6を使用しました。
PostgreSQLのインストールはhomebrewを使用させて頂きました。
- Homebrewをインストール、アップデートします。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" brew update
- PostgreSQLをインストールします。
brew install postgresql
既定でインストールされるデータベースのロケールは、en_US.UTF-8のようです。日本語ロケールのデータベースを作成しておこうと思います。
日本語ロケールのデータベース作成
- 既定のデータベースをリネームしておきます。
mv /usr/local/var/postgres /usr/local/var/postgres.orig
- 日本語のロケールが使用可能かどうか、確認しておきます。
locale -a |grep ja
- ロケールオプションつきでデータベースを作成します。
initdb /usr/local/var/postgres --locale ja_JP.UTF-8
ネットワークアクセス設定
postgresql.confファイル
- postgresql.confファイルを編集して接続可能なIPアドレスとポート番号を設定します。
vi /usr/local/var/postgres/postgresql.conf
最終行に次の2行を追加しました。
listen_addresses = '*' port = 5432
この場合、すべてのIPアドレス(*)から接続できる設定になります。
pg_hba.confファイル
- pg_hba.confファイルを編集して認証設定を行います。
vi /usr/local/var/postgres/pg_hba.conf
最終行に次の1行を追加しました。192.168.123.0/24の部分は、ネットワークに合わせて適宜変更する必要があります。
host all all 192.168.123.0/24 trust
すべてのデータベース、すべてのユーザに、指定したIPアドレスからアクセスできる設定になります。
サービスの起動
- インストール時に表示されたメッセージを参考に、サービスを起動します。
brew services start postgresql
コピペ用に停止・再起動も記載致します。
brew services restart postgresql
brew services stop postgresql
psql -lコマンドでデータベース一覧を表示すると、先程作成した日本語ロケールのデータベースを確認できます。
pgAdmin4のインストール
Webブラウザからデータベースの管理が可能になるpgAdminを動かそうと思います。
Homebrew caskでインストールが可能のようです。
brew cask install atom
brew cask install pgadmin4
アプリケーションフォルダにインストールされたpgAdmin4を起動すると、Webサーバとして動作するようです。
dockerを使用する場合は、次の手順になります。
- docker をインストールします。
brew cask install docker
- docker-compose.yamlファイルを作成します。
mkdir pgadmin cd pgadmin vi docker-compose.yaml
次の内容になります。
version: '2' services: adm: image: dpage/pgadmin4:latest volumes: - ./pgadmin:/var/lib/pgadmin/storage:z ports: - "80:80" - "443:443" environment: PGADMIN_DEFAULT_EMAIL: <ユーザ名> PGADMIN_DEFAULT_PASSWORD: <パスワード>
- docker-composeコマンドで起動します。
docker-compose up -d
PostgreSQLの管理ユーザは、macOSのユーザになりますので、特に作成する必要はありませんでした。
データベースの管理は、コマンドラインの他に、pgAdminによるGUIでの操作も可能ですので、各種操作が簡単にできそうです。