PostgreSQL サーバーのインストールと設定
[root]# useradd --create-home --user-group postgres
--create-home(-m): ホームディレクトリが存在しない場合、作成
--user-group(-U): ユーザーと同じ名前のグループを作成
[root]# passwd postgres
[root]# mkdir /usr/local/pgsql/
[root]# chown -R postgres:postgres /usr/local/pgsql/
[root]# tar xvfj postgresql-17.0.bz2 -C /usr/local/src
[root]# chown -R postgres:postgres /usr/local/src/postgresql-xx.x
メジャー・バージョンアップ時には、データのバックアップ取得後、停止、
/usr/local/pgsql を削除して、新規インストール。
マイナー・バージョンアップ時には、インストールして再起動。
インストールには Perl モジュール ExtUtils::Embed ExtUtils::MakeMaker が必要。
[root]# cpan ExtUtils::Embed ExtUtils::MakeMaker
または、
[root]# dnf install perl-ExtUtils-Embed perl-ExtUtils-MakeMaker
[root]# su - potgres # ユーザを postgres に切り替え
[postgres]$ cd /usr/local/src/postgresql-xx.x
[postgres]$ ./configure --enable-nls=ja(日本語サポート)--with-perl(PL/perl)
[postgres]$ make -j3
[postgres]$ make -j3 check
[postgres]$ make -j3 install
[postgres]$ /usr/local/pgsql/bin/pg_isready --version # バージョン確認
[postgres]$ cd ..
[postgres]$ rm -vrf postgresql-xx.x
[postgres]$ pg_dumpall -U postgres > ファイル名
・postgresql 停止
[root]# systemctl stop postgresql.service
・/usr/local/pgsql 削除
[root]# rm -vrf /usr/local/pgsql/
・インストールディレクトリ作成
[root]# mkdir /usr/local/pgsql
[root]# chown postgres:postgres /usr/local/pgsql/
・インストール
[root]# tar xvfj postgresql-xx.x.tar.bz2 -C /usr/local/src/
[root]# chown -R postgres:postgres /usr/local/src/postgresql-xx.x/
[postgres]$ cd /usr/local/src/postgresql-xx.x/
[postgres]$ ./configure --enable-nls=ja --with-perl
[postgres]$ make -j3
[postgres]$ make -j3 check
[postgres]$ make -j3 install
[postgres]$ /usr/local/pgsql/bin/pg_isready --version
・データベースクラスタ作成
[postgres]$ initdb --encoding=UTF-8 --no-locale --data-checksums
・postgresql 起動
[root]# systemctl start postgresql.service
・全データベース復元
[postgres]$ psql -U postgres template1 < ファイル名
・/usr/local/pgsql/data/{pg_hba.conf, postgresql.conf} 設定
[postgres]$ vim /usr/local/pgsql/data/pg_hba.conf
[postgres]$ vim /usr/local/pgsql/data/postgresql.conf
[postgres]$ pg_ctl reload
・Apache(mod_prel)再起動
[root]# systemctl restart httpd.service
postgresql を利用する全てのユーザーにて、以下を実行。
[user]$ vim ~/.bash_profile
[user]$ vim ~/.profile(Ubuntu: ~/.bash_profile, ~/.bash_login が無い場合)
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
[user]$ . ~/.bash_profile
[root]# updatedb
[root]# locate libpgtypes.so
/usr/local/pgsql/lib/libpgtypes.so
[root]# vim /etc/ld.so.conf.d/postgresql.conf
/usr/local/pgsql/lib
・/etc/ld.so.cache を更新
[root]# ldconfig -v
-v : 進捗状況
・確認
[root]# ldconfig -p | grep libpgtypes
-p : /etc/ld.so.cache の内容確認
libpgtypes.so.3 => /usr/local/pgsql/lib/libpgtypes.so.3
libpgtypes.so => /usr/local/pgsql/lib/libpgtypes.so