インストール済みパッケージの確認
インストール済みのPostgreSQLがないか確認します。
# psql --version
-bash: psql: command not found
インストール済みの関連パッケージも検索しておきます。
# rpm -qa | grep postgresql
postgresql-libsが見つかりました。
postgresql-libs-8.1.23-1.el5_7.3
postgresql-libs-8.1.23-1.el5_7.3
Name : postgresql-libs
Arch : x86_64
Version : 8.1.23
Release : 1.el5_7.3
Size : 507 k
Repo : installed
Summary : The shared libraries required for any PostgreSQL clients.
URL : http://www.postgresql.org/
License : BSD
Description: The postgresql-libs package provides the essential shared libraries for any
: PostgreSQL client program or interface. You will need to install this package
: to use any other PostgreSQL package or any clients that need to connect to a
: PostgreSQL server.
インストールするパッケージの検索
インストールするパッケージを検索します。
# yum --disableplugin=priorities info postgresql-server
CentOSの標準リポジトリで見つかりましたが、バージョンが8.1.23とかなり古いものでした。
Name : postgresql-server
Arch : x86_64
Version : 8.1.23
Release : 1.el5_7.3
Size : 3.9 M
Repo : updates
Summary : The programs needed to create and run a PostgreSQL server.
URL : http://www.postgresql.org/
License : BSD
Description: The postgresql-server package includes the programs needed to create
: and run a PostgreSQL server, which will in turn allow you to create
: and maintain PostgreSQL databases. PostgreSQL is an advanced
: Object-Relational database management system (DBMS) that supports
: almost all SQL constructs (including transactions, subselects and
: user-defined types and functions). You should install
: postgresql-server if you want to create and maintain your own
: PostgreSQL databases and/or your own PostgreSQL server. You also need
: to install the postgresql package.
PostgreSQL RPM Repository (with Yum)からRPMファイルをダウンロードして、本家のリポジトリを追加します。
$ wget -P /tmp http://yum.postgresql.org/9.1/redhat/rhel-5-x86_64/pgdg-centos91-9.1-4.noarch.rpm
$ sudo rpm -ivh /tmp/pgdg-centos91-9.1-4.noarch.rpm
もう一度検索します。
$ yum --disableplugin=priorities info postgresql-server
やはりCentOSの標準リポジトリにあるものしか見つかりません。
Name : postgresql-server
Arch : x86_64
Version : 8.1.23
Release : 1.el5_7.3
Size : 3.9 M
Repo : updates
Summary : The programs needed to create and run a PostgreSQL server.
URL : http://www.postgresql.org/
License : BSD
本家のリポジトリで見つからないのはおかしいので、パッケージを列挙してみます。
$ yum list | grep postgresql
9.1系はpostgresql91-xxxxというパッケージ名になっていました。
postgresql91.x86_64 9.1.2-1PGDG.rhel5 pgdg91
postgresql91-contrib.x86_64 9.1.2-1PGDG.rhel5 pgdg91
postgresql91-debuginfo.x86_64 9.1.1-1PGDG.rhel5 pgdg91
postgresql91-devel.x86_64 9.1.2-1PGDG.rhel5 pgdg91
postgresql91-docs.x86_64 9.1.2-1PGDG.rhel5 pgdg91
postgresql91-jdbc.x86_64 9.1.901-1PGDG.rhel5 pgdg91
postgresql91-jdbc-debuginfo.x86_64 9.1.901-1PGDG.rhel5 pgdg91
postgresql91-libs.x86_64 9.1.2-1PGDG.rhel5 pgdg91
postgresql91-odbc.x86_64 09.00.0310-1PGDG.rhel5 pgdg91
postgresql91-odbc-debuginfo.x86_64 09.00.0310-1PGDG.rhel5 pgdg91
postgresql91-plperl.x86_64 9.1.2-1PGDG.rhel5 pgdg91
postgresql91-plpython.x86_64 9.1.2-1PGDG.rhel5 pgdg91
postgresql91-pltcl.x86_64 9.1.2-1PGDG.rhel5 pgdg91
postgresql91-python.x86_64 4.0-2PGDG.rhel5 pgdg91
postgresql91-python-debuginfo.x86_64 4.0-2PGDG.rhel5 pgdg91
postgresql91-server.x86_64 9.1.2-1PGDG.rhel5 pgdg91
postgresql91-tcl.x86_64 1.9.0-1.rhel5 pgdg91
postgresql91-tcl-debuginfo.x86_64 1.9.0-1.rhel5 pgdg91
postgresql91-test.x86_64 9.1.2-1PGDG.rhel5 pgdg91
もう一度検索します。
$ yum --disableplugin=priorities info postgresql91-server.x86_64
ようやく9.1系のパッケージが見つかりました。
Name : postgresql91-server
Arch : x86_64
Version : 9.1.2
Release : 1PGDG.rhel5
Size : 5.1 M
Repo : pgdg91
Summary : The programs needed to create and run a PostgreSQL server
URL : http://www.postgresql.org/
License : PostgreSQL
Description: The postgresql91-server package includes the programs needed to create
: and run a PostgreSQL server, which will in turn allow you to create
: and maintain PostgreSQL databases. PostgreSQL is an advanced
: Object-Relational database management system (DBMS) that supports
: almost all SQL constructs (including transactions, subselects and
: user-defined types and functions). You should install
: postgresql91-server if you want to create and maintain your own
: PostgreSQL databases and/or your own PostgreSQL server. You also need
: to install the postgresql package.
8.1系のアンインストール
9.1系のパッケージをインストールする前に、postgresql-libs-8.1.23-1.el5_7.3をアンインストールしておきます。
$ sudo yum remove postgresql-libs-8.1.23-1.el5_7.3
9.1系のインストール
インストールします。
$ sudo yum --disableplugin=priorities install postgresql91-server.x86_64
Dependencies Resolved
==================================================================================================
Package Arch Version Repository Size
==================================================================================================
Installing:
postgresql91-server x86_64 9.1.2-1PGDG.rhel5 pgdg91 5.1 M
Installing for dependencies:
postgresql91 x86_64 9.1.2-1PGDG.rhel5 pgdg91 1.5 M
postgresql91-libs x86_64 9.1.2-1PGDG.rhel5 pgdg91 217 k
Transaction Summary
==================================================================================================
Install 3 Package(s)
Upgrade 0 Package(s)
Total download size: 6.8 M
Is this ok [y/N]: y
Downloading Packages:
(1/3): postgresql91-libs-9.1.2-1PGDG.rhel5.x86_64.rpm | 217 kB 00:00
(2/3): postgresql91-9.1.2-1PGDG.rhel5.x86_64.rpm | 1.5 MB 00:01
(3/3): postgresql91-server-9.1.2-1PGDG.rhel5.x86_64.rpm | 5.1 MB 00:01
--------------------------------------------------------------------------------------------------
Total 1.5 MB/s | 6.8 MB 00:04
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : postgresql91-libs 1/3
Installing : postgresql91 2/3
Installing : postgresql91-server 3/3
Installed:
postgresql91-server.x86_64 0:9.1.2-1PGDG.rhel5
Dependency Installed:
postgresql91.x86_64 0:9.1.2-1PGDG.rhel5 postgresql91-libs.x86_64 0:9.1.2-1PGDG.rhel5
Complete!
サービスの起動
インストールと同時にpostgresというユーザーが作成されています。
$ id postgres
uid=26(postgres) gid=26(postgres) groups=26(postgres)
PostgreSQLのバージョンを確認します。
$ psql --version
psql (PostgreSQL) 9.1.2
contains support for command-line editing
サービスの名前を確認します。
$ sudo /sbin/chkconfig --list | grep postgresql
サービス名はpostgresql-9.1
でした。
postgresql-9.1 0:off 1:off 2:off 3:off 4:off 5:off 6:off
自動起動が無効になっているので、有効にします。
$ sudo /sbin/chkconfig postgresql-9.1 on
サービスを起動します。
$ sudo /sbin/service postgresql-9.1 start
失敗しました。エラーメッセージにはservice postgresql-9.1.2 initdb
を使って初期化するように、とあります。
/var/lib/pgsql/9.1/data is missing. Use "service postgresql-9.1.2 initdb" to initialize the cluster first.
[FAILED]
サービス名はpostgresql-9.1
の間違いだと思うのですが、、、試しに実行してみます。
$ sudo /sbin/service postgresql-9.1.2 initdb
やはり間違っていました。
postgresql-9.1.2: unrecognized service
postgresql-9.1.2
をpostgresql-9.1
に修正して、もう一度実行します。
$ sudo /sbin/service postgresql-9.1 initdb
無事に初期化できました。
Initializing database: [ OK ]
もう一度、サービスを起動します。
$ sudo /sbin/service postgresql-9.1 start
起動できました。
Starting postgresql-9.1 service: [ OK ]
ここから先はpostgresユーザーにsuして操作します。デフォルトではログインアカウントと同じユーザー名でPostgreSQLに接続しようとしますが、-Uオプションを使うと別のユーザー名を指定できます。
$ sudo su - postgres
-bash-3.2$
データベースの一覧を表示します。
-bash-3.2$ psql -l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+-----------+---------+-------+-----------------------
postgres | postgres | SQL_ASCII | C | C |
template0 | postgres | SQL_ASCII | C | C | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | SQL_ASCII | C | C | =c/postgres +
| | | | | postgres=CTc/postgres
(3 rows)