PostgreSQL(インストール)

概要

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