PostgreSQLのリリースフロー
リリースされたばかりのPostgreSQL 11ですが,
PostgreSQLのメジャーバージョンは毎年リリースされています。PostgreSQLのリリースの流れを知っておけば,
リリースまでの流れ
PostgreSQLは特定の企業に依存せず,
この流れの中で,pgsql-hackers@postgresql.
で行われています。ここでのやりとりはすべてWebにアーカイブされており,
PostgreSQLのソースコードはgit.
で管理されており,
- 注1)
- GitHubに公式アカウントのミラーリポジトリがあるのですが,
あくまでミラーリポジトリであり, Pull Requestを送っても対応されません。
Commit Festによるレビュー
Commit Festとは,
Commit Festは,
Commit Festには次のメリットがあります。
- 作成したパッチが放置されない
- 一定の品質を保ちつつ,
コードを取り込める
これにより,
Commit Festは誰でも気軽に参加できます。興味がある人は,
コマンドによるインストール
そろそろ実際にPostgreSQLを試したくなってきたことでしょう。本節からは,
PostgreSQLのインストール方法はいろいろあります。コンテナを立ち上げてCLI
本特集の以降では,CREATE DATABASE
で作成されるデータベースは
本節では,
PostgreSQLのインストール
# yum localinstall https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm
# yum install postgresql11-server \
postgresql11-contrib \
ostgresql11-devel \
postgresql11-libs
postgresユーザーで実行する
# su postgres
PostgreSQLのセットアップ
$ /usr/pgsql-11/bin/initdb -E UTF-8 \
--no-locale -D /var/lib/pgsql/11/data
$ exit
# systemctl start postgresql-11.service
バージョンの確認
# psql -V
psql (PostgreSQL) 11
以上で完了です。CLIでのインストールはWeb上に多くのHow Toが公開されていますので,
ただし,
- ロケールの設定
- 文字エンコーディングの指定
- アクセス制限の指定
以降で順に説明します。
ロケールの設定
PostgreSQLはinitdbの際にロケールを指定しない場合,
それを防ぐためにPostgreSQLでは一般的に,
ロケールにCを指定するには,--no-locale
を指定するか,--locale=C
を指定します。--no-locale
と--locale=C
は同義ですのでどちらでもかまいません。
もし指定し忘れた場合,
文字エンコーディングの設定
続いてエンコーディングの指定です。
initdbで明示的に指定しなかった場合のデフォルトではsql_-E UTF-8
を指定するようにしましょう。
DB作成時のロケールとエンコーディングの指定
万が一,
DBの作成時に指定する例
postgres=# CREATE DATABASE DB名 \
LC_COLLATE 'C' LC_CTYPE 'C' \
ENCODING 'UTF8' TEMPLATE template0;
この方法は,
アクセス制限の設定
PostgreSQLは,pg_
によってアクセス制限を行います。デフォルトではlocalhost以外のアクセスは無効になっていますので,
その際,
trust
は指定しない0.
は指定しない0.0. 0/ 0
trustはパスワード認証をしない設定です。スーパーユーザーであるpostgresなどにノンパスワードでアクセスできるためたいへん危険です。0.
はすべてのIPアドレスからアクセスできます。
ときどきWebの記事などで上記の設定を指定しているHow Toがありますので注意してください。もし外部からアクセスできる場所のサーバで0.
で設定すると,
設定方法は,192.
のネットワークからのみパスワード認証でアクセスさせたい場合,
# TYPE DATABASE USER ADDRESS METHOD
host all all 192.169.1.0/24 md5
アクセス制限の解除
PostgreSQLのアクセス制限には,postgresql.
です。postgresql.
は,
postgresql.
も,pg_
だけ変更しても,postgresql.
を変更していない場合は外部からアクセスできませんので注意してください。localhost以外からアクセスさせたい場合,
変更前
listen_addresses = 'localhost'
変更後
listen_addresses = '*'
postgresql.
とpg_
は,
ここまで設定すればPostgreSQLにアクセスできるはずです。接続方法については後述します。