PostgreSQLインストール
Version 9.0.x with CentOS 6 or 7 2016/12
グループとユーザ、インストールディレクトリの作成。
解凍、コンパイルとインストール。SSLの場合は別途。
環境変数の設定。~postgresql/.bash_profileの末尾へ追加。
データベースクラスタの初期化
設定ファイル。
グループとユーザ、インストールディレクトリの作成。
sudo groupadd postgres sudo useradd -g postgres postgres sudo passwd postgres sudo mkdir /usr/local/pgsql sudo chown postgres.postgres /usr/local/pgsqlソースの取得と改ざん確認。
su - postgres mkdir src cd src/ wget https://ftp.postgresql.org/pub/source/v9.6.1/postgresql-9.6.1.tar.gz wget https://ftp.postgresql.org/pub/source/v9.6.1/postgresql-9.6.1.tar.gz.md5 md5sum --check postgresql-9.6.1.tar.gz.md5※ md5のハッシュ値をダウンロードしなくても、md5sum postgres-x.x.x.tar.gz.md5 でハッシュ値を計算してブラウザ上の値と見比べればOK。
解凍、コンパイルとインストール。SSLの場合は別途。
tar xzvf postgresql-x.x.x.tar.gz cd postgresql-x.x.x ./configure /* インストール先を/usr/local/pgsql以外に変更する場合は、$ ./configure --prefix=/install/dir */ make make check sudo make installCentOSをミニマムインストールしてコンフィギュアでエラーの場合
checking for gcc... no -> # yum install gcc checking for library containing readline... no -> # yum install readline-devel checking for inflate in -lz... no -> # yum install zlib-devel
環境変数の設定。~postgresql/.bash_profileの末尾へ追加。
export PATH=$PATH:/usr/local/pgsql/bin export POSTGRES_HOME=/usr/local/pgsql export PGLIB=$POSTGRES_HOME/lib export PGDATA=$POSTGRES_HOME/data export MANPATH="$MANPATH":$POSTGRES_HOME/man export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB"
. ~/bash_profile
データベースクラスタの初期化
initdb -D /usr/local/pgsql/data --no-localeテスト起動
pg_ctl start Starting PostgreSQL: ok netstat -atp | grep postgres tcp 0 0 localhost.localdom:postgres *:* LISTEN xxxxx/postmaster pg_ctl stop Stopping PostgreSQL: ok起動設定(CentOS6)
sudo cp ~postgres/src/postgresql-x.x.x/contrib/start-scripts/linux /etc/init.d/postgresql sudo vi /etc/init.d/postgresql
# Where to keep a log file #PGLOG="$PGDATA/serverlog" # ログ設定を変更 : postgresql.confで設定。 PGLOG="/dev/null"
sudo chmod +x /etc/init.d/postgresql
sudo chkconfig --add postgresql sudo chkconfig postgresql on sudo chkconfig --list postgresql postgresql 0:off 1:off 2:on 3:on 4:on 5:on 6:off sudo service postgresql start Starting PostgreSQL: ok sudo service postgresql stop Stopping PostgreSQL: ok起動設定 (CentOS7) PostgreSQL用のサービスファイルを作成する。
$ su - # vi /lib/systemd/system/postgresql.service
[Unit] Description=PostgreSQL database server After=network.target [Service] Type=forking User=postgres Group=postgres Environment=PGPORT=5432 Environment=PGDATA=/usr/local/pgsql/data OOMScoreAdjust=-1000 ExecStart=/usr/local/pgsql/bin/pg_ctl start -D ${PGDATA} -s -o "-p ${PGPORT}" -w -t 300 ExecStop=/usr/local/pgsql/bin/pg_ctl stop -D ${PGDATA} -s -m fast ExecReload=/usr/local/pgsql/bin/pg_ctl reload -D ${PGDATA} -s TimeoutSec=300 [Install] WantedBy=multi-user.targetサービス設定と起動確認
# systemctl enable postgresql # systemctl start postgresql.service # systemctl status postgresql.service # systemctl stop postgresql.serviceファイアーウォールの設定 : 外部からアクセスの必要がある場合 (CentOS6)
iptables -A INPUT -p tcp --dport=5432 -j ACCEPT iptables -A OUTPUT -p tcp --sport=5432 -j ACCEPTファイアーウォールの設定 : 外部からアクセスの必要がある場合(CentOS7)
firewall-cmd --permanent --zone=public --add-service=postgresql firewall-cmd --reloadユーザとデータベースの作成。
$ createuser user_1 $ createdb -E UTF-8 -O user_1 -T template0 user1_db※ 日本語を使うときはUTF-8で
設定ファイル。
pg_hba.conf アクセス設定 postgresql.conf 機能設定 listen_address = '*' にしないと外部から接続できないことに注意。※ SSLを使用するためには別途設定が必要。