PHPでPostgreSQLを利用する場合の設定方法さくらのVPS
の例)です。
LAMP環境が構築されている前提です。
パッケージのインストール
# yum -y install php-pgsql postgresql postgresql-server postgresql-libsDB初期化と起動
# su - postgres$ initdb
$ exit
# chkconfig postgresql on
# /etc/rc.d/init.d/postgresql start
Apacheの再起動
# /etc/rc.d/init.d/httpd restart他のサーバからの移行
■移行元サーバでデータベースをバックアップ# pg_dump -D -U [ユーザ名] [データベース名] > db.dump
■移行先サーバでデータベースとユーザを作成
# su - postgres
$ createdb -E [文字コード] [データベース名] --locale=ja_JP.EUC_JP --template=template0
$ createuser -a -U postgres -P [ユーザ名]
新しいロールのパスワード: もう一度入力してください:
■移行先サーバでデータベースをリストア
$ psql -d [データベース名] -f db.dump
■データベースの所有者の変更
template1に接続して変更する。
$ psql template1
template1=# select * from pg_user; usename | usesysid | usecreatedb | usesuper | usecatupd | passwd | valuntil | useconfi g ----------+----------+-------------+----------+-----------+----------+----------+--------- -- postgres | 10 | t | t | t | ******** | | ユーザ名 | 16385 | t | t | t | ******** | | (2 行) template1=# update pg_database set datdba = 16385 where datname = 'DB名'; UPDATE 1 postgres=# \q
■確認
$ psql
postgres=# \l DB名 | ユーザ名 | EUC_JP | ja_JP.EUC_JP | ja_JP.EUC_JP | postgres | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | template0 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres : postgres=CTc /postgres template1 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres : postgres=CTc /postgres postgres=# \q