仕事でもっともよく使うデータベース。
ここ最近までは、ソースコードからインストールしていたけれど、バージョン的にも問題はなさそうなので、お手軽にrpmからインストールする。
ここでは、「CentOS 5 Sixwish 標準インストールマニュアル、標準最小構成化マニュアル」並びに「Xen Domain-U関連」の最小構成構築の手順に従って構築された環境であることを前提としています。
そのため、異なる方法でインストールした場合は、状況が少し異なるので読替えるなどしてください。
なお、ここでの表記は「Xen Domain-U関連」に記載されている「CentOS 5 on Xen(CnetOS5) Domain-U用最小化手順仕上げ」まで完了した状態から始めている例です。
yum経由でインストールする。
yum search postgresqlあたりで検索をかけると、いろいろなパッケージが出てくるが、必要となるのはpostgresql-serverなので要注意。
postgresqlが本命のような気もするであろうけれど、こっちはクライアントバイナリとライブラリしか詰まっていないのです。DBサーバは無いけれど、他のサーバーにあるDBにアクセスしたい時は、逆にこれだけ入れてあげればOK。
前置きはこの程度にして、以下手順。
[root@sixwish ~]# yum -y install postgresql postgresql-libs postgresql-server Loading "installonlyn" plugin Setting up Install Process Setting up repositories 中略 Dependencies Resolved ============================================================================= Package Arch Version Repository Size ============================================================================= Installing: postgresql i386 8.1.8-1.el5 updates 2.8 M postgresql-libs i386 8.1.8-1.el5 updates 196 k postgresql-server i386 8.1.8-1.el5 updates 4.0 M Transaction Summary ============================================================================= Install 3 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 7.0 M Downloading Packages: (1/3): postgresql-server- 100% |=========================| 4.0 MB xx:xx (2/3): postgresql-8.1.8-1 100% |=========================| 2.8 MB xx:xx (3/3): postgresql-libs-8. 100% |=========================| 196 kB xx:xx Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing: postgresql-libs ######################### [1/3] Installing: postgresql ######################### [2/3] Installing: postgresql-server ######################### [3/3] Installed: postgresql.i386 0:8.1.8-1.el5 postgresql-libs.i386 0:8.1.8-1.el5 postgresql-server.i386 0:8.1.8-1.el5 Complete! [root@sixwish ~]#
これでインストール完了です。
今回はSELinuxがenabledになっているので、initdbするにも一苦労なので、initスクリプト任せで設定してしまいます。
[root@sixwish ~]# service postgresql start データベースを初期化中: [ OK ] postgresql サービスを開始中: [ OK ] [root@sixwish ~]# su - postgres -bash-3.1$ psql -l List of databases Name | Owner | Encoding -----------+----------+---------- postgres | postgres | UTF8 template0 | postgres | UTF8 template1 | postgres | UTF8 (3 rows) -bash-3.1$ logout [root@sixwish ~]#
これで、initdbが終わり、initdbで作成されるファイルに対してSELinuxのラベル付けが完了するわけです。
これを手動で行う場合は、いろいろと調べてからやらないとならないのでお勧めできません。
OSがutf-8ベースになったので、PHPを初め、軒並みutf-8で統一しているので、個人的には何も行うことなく初期化の手順を踏めますが、そうでない場合は、初期化前に行うことがあれこれと……
例えば、EUC-JPで使う事が前提となっている場合は、/etc/rc.d/init.d/postgresqlのファイル中からinitdbを探して、初期化オプションに--encoding=EUC-JP --no-localeをつけないと、createdbしたときに問答無用でutf-8になってしまうので要注意。
もっとも、createdbする時に、オプション指定すればいいだけなんですがね……
起動時に自動的にサービスが開始するようにしておきます。
[root@sixwish ~]# chkconfig postgresql on [root@sixwish ~]# chkconfig --list postgresql postgresql 0:off 1:off 2:on 3:on 4:on 5:on 6:off [root@sixwish ~]#
無駄に動かしっぱなしでも仕方が無いので、一旦止めておきます。
[root@sixwish ~]# service postgresql stop postgresql サービスを停止中: [ OK ] [root@sixwish ~]#
とりあえず、ここまで。