Marlock Homes Diary

備忘録。忘れないように書きます。

PostgreSQL12インストール

PostgreSQLのバージョン 12がリリースされたので、インストールして新機能などを試していきたいと思います。
とりあえずはインストール。

環境情報

# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)


1.環境準備
1.1.make

# gmake -version
GNU Make 3.82
[省略]


1.2.gcc

# gcc -v
[省略]
gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)


1.3. Readline

# yum install readline
Package readline-6.2-11.el7.x86_64 already installed and latest version
Nothing to do

# yum install readline-devel
Package readline-devel-6.2-11.el7.x86_64 already installed and latest version
Nothing to do

1.4. zlib

# yum install zlib
Package zlib-1.2.7-18.el7.x86_64 already installed and latest version
Nothing to do
# yum install zlib-devel
Package zlib-devel-1.2.7-18.el7.x86_64 already installed and latest version
Nothing to do

2.PostgreSQLインストール

2.1.postgresユーザ作成

# useradd postgres12

2.2.ソースの入手と解凍

# cd /usr/local/src/
# wget https://ftp.postgresql.org/pub/source/v12.0/postgresql-12.0.tar.gz
# tar xvzf postgresql-12.0.tar.gz
# chown -R postgres12:postgres12 postgresql-12.0

2.3.コンパイル

# su - postgres12
$ cd /usr/local/src/postgresql-12.0/
$ ./configure
$ gmake world ※
(省略)
PostgreSQL, contrib, and documentation successfully made. Ready to install.

※ドキュメント(HTMLやman)や追加モジュール(contrib)を含め、構築可能なもの全てを構築したい場合、上記の様にworldを付与して実行

2.4.リグレーションテスト

$ gmake check
(省略)
=======================
 All 192 tests passed.
=======================
(省略)

2.5.インストール

$ su
# gmake install-world
(省略)
PostgreSQL, contrib, and documentation installation complete.


2.6.インストールディレクトリの所有者変更

# cd /usr/local/
# chown -R postgres12:postgres12 pgsql/

2.7.postgres用ユーザの環境変数設定

# su - postgres12
$ vi .bash_profile
(下記を設定)

# PostgreSQL
export POSTGRES_HOME=/usr/local/pgsql
export PGDATA=/home/postgres12/data
export PATH=$PATH:$POSTGRES_HOME/bin
export PGLIB=/usr/local/pgsql/lib
export PGUSER=postgres12
export PGDATABASE=postgres
export MANPATH="$MANPATH":$POSTGRES_HOME/man
export LD_LIBRARY_PATH=/usr/local/pgsql/lib:$LD_LIBRARY_PATH

2.7.postgresユーザの環境変数設定読み込み

$ source .bash_profile

2.8.データベースクラスタの作成

$ initdb -E UTF8 --no-locale

2.9.ログ出力設定
# ログのみ出力(その他の設定は省略)

$ vi /home/postgres12/data/postgresql.conf
#logging_collector = off                # Enable capturing of stderr and csvlog
logging_collector = on

2.10.PostgreSQL起動

$ pg_ctl start
waiting for server to start....2019-10-27 16:57:59.091 JST [17115] LOG:  starting PostgreSQL 12.0 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36), 64-bit
2019-10-27 16:57:59.093 JST [17115] LOG:  listening on IPv6 address "::1", port 5432
2019-10-27 16:57:59.093 JST [17115] LOG:  listening on IPv4 address "127.0.0.1", port 5432
2019-10-27 16:57:59.139 JST [17115] LOG:  listening on Unix socket "/tmp/.s.PGSQL.5432"
2019-10-27 16:57:59.177 JST [17115] LOG:  redirecting log output to logging collector process
2019-10-27 16:57:59.177 JST [17115] HINT:  Future log output will appear in directory "log".
 done
server started


以上