PostgreSQL 7.4.3をRedHat 9にインストールする方法

RedHat9へのPostgreSQL7.4.3インストール

フリーのDBで,カモランドのバックエンドを強化しようかと画策している.

PostgreSQLの環境を作ることにした.


今回使ったソフト

  • Linux: RedHat9
  • PostgreSQL:PostgreSQL 7.4.3


1.ダウンロード

 FTPソフトを使って,SRAのサイトからダウンロードした.

  • サイト:ftp.sra.co.jp
  • ディレクトリ:/.a/pub/cmd/postgres/7.4.3

ファイルは,postgresql-7.4.3.tar.gz


2.インストール,設定

root以外のユーザでの作業(rootでも可)

$ tar zxf postgresql-7.4.3.tar.gz
$ cd postgresql-7.4.3
$ ./configure --enable-multibyte=EUC_JP
$ make

rootでの作業

# make install
# useradd postgres
# mkdir /usr/local/pgsql/data
# chown postgres /usr/local/pgsql/data

postgresでの作業

ユーザpostgresにsuして行う.
# su - postgres
$ vi ~/.bash_profile

で,以下の内容を,~/.bash_profile に追加する

~/.bash_profile に追加

PATH=$PATH:/usr/local/pgsql/bin
PG=/usr/local/pgsql
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PG/lib
export PGLIB=$PG
export PGDATA=$PG/data

データベースクラスターを初期化する.

$ initdb -D /usr/local/pgsql/data

3.DBの起動/停止

DBの起動

$ pg_ctl start -D /usr/local/pgsql/data -l /home/postgres/logfile

DBの停止

$ pg_ctl stop -D /usr/local/pgsql/data

4.DB作成,接続試験

とりあえず,適当にDBを作って試してみる.

$ createdb test
$ psql test

5.ネットワークから接続できるようにする

デフォルトのport番号5432で待ち受けする場合.

/usr/local/pgsql/data/postgresql.conf を編集

tcpip_socket = true
port = 5432
接続元のネットワークを,192.168.0.xに限定してみる.

/usr/local/pgsql/data/pg_hba.conf を編集

host    all         all         192.168.0.0         255.255.255.0   trust
このような設定にした場合,接続に必要な情報は以下のようにまとめられる.

  • ユーザ名:postgres
  • パスワード:なし
  • DB NAME:test
  • host名:postgreSQLが動いているマシンのホスト名
  • port 番号:5432

とりあえずこの情報を使って,192.168.0.xにあるマシンから接続できるはず.


6.設定の調整

(1) セキュリティ

デフォルトでは,全てのOSユーザに対して,
$ psql -U postgres test

とすれば無認証で接続を許可してしまう. (もちろん,PGLIB等の環境変数が設定されている前提ですが)

あまりよろしくないので,一応パスワードによる認証をかける.

まず,パスワードを設定する.

$ psql -U postgres test
test=# alter user postgres with password 'postgres';
そして,先ほどtrustで設定したpg_hba.confの箇所を,passwordに変更する.

/usr/local/pgsql/data/pg_hba.conf を編集

local   all         all                                             password
host    all         all         192.168.0.0         255.255.255.0   password

そして,PostgreSQLを再起動する


$ pg_ctl restart -D /usr/local/pgsql/data

(2) カーネルパラメータ

マニュアルによると,

  • SHMMAX:共有メモリセグメントの最大サイズ(bytes)
  • SHMALL:使用可能な共有メモリの総量

を,

250 kB + 8.2 kB * shared_buffers + 14.2 kB * max_connections 以上から無限大
の値に設定するらしい.

実際は用途に応じてというところでしょうが,インストール直後のpostgresql.confの値で考えると,

  • max_connections = 100
  • shared_buffers = 1000

なので,必要な値は

250 + 8.2 * 1000 + 14.2 * 100 = 9870
となる.
cat /proc/sys/kernel/shmmax
cat /proc/sys/kernel/shmall
で確認すれば分かるが,おそらく既にこの9870より大きい値に設定されているでしょう. (私のRedHat9は設定されていた)

ということで,今回は何もしない.


© 2023 KMIソフトウェア