データベース


もう完全にメモ。殴り書き。

[ mysql ]
# tar xzf mysql-5.1.43.tar.gz
# cd mysql-5.1.43
# ./configure --prefix=/usr/local/mysql -with-charset=utf8 -with-extra-charsets=all
# make; make install; make clean

[ postgresql ]
# tar xzf postgresql-8.4.2.tar.gz
# cd postgresql-8.4.2
# ./configure --prefix=/usr/local/pgsql
# make; make install; make clean


[ openssl ]
# ./config --prefix=/usr/local/openssl enable-tlsext; make depend; make; make install; make clean;

[ apache ]
# ./configure --prefix=/usr/local/apache --enable-so --enable-ssl --with-ssl=/usr/local/openssl --enable-deflate
# make; make install; make clean

[ php ]
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-pgsql=/usr/local/pgsql --enable-mbstring --enable-mbregex
# make; make install; make clean
# cp php.ini-production /usr/local/php/lib/php.ini

[ php.ini ]
----
[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = UTF-8
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none;
mbstring.script_encoding=auto
----

[ httpd.conf ]
----
DirectoryIndex index.html index.php
AddType application/x-httpd-php .php
----

[ index.php ]
----
<?php phpinfo() ?>
----


PostgreSQLの移行(バージョンアップ)

[ OLD SERVER ]
pg_dump -F p -s -v -i -f hoge-schema.sql hoge-db
pg_dump -F p -a -v -i -O -f hoge-data.sql hoge-db

スキーマ(テーブル定義)と中身(データ)を分けて出力


[ NEW SERVER ]
su - postgres
psql -l
# DBがあればDROPで
# dropdb hoge-db
$PG_HOME/bin/createuser foo
$PG_HOME/bin/createdb -O foo -E EUC_JP hoge-db

# 確認してrep_str.sh を実行(とりあえず改行取るだけ。CRLF -> LFに。)
ls -l
./rep_str.sh

[ rep_str.sh ]
--------------
#!/bin/sh

sed -e 's/\\r\\n/\\n/g' hoge-data.sql > hoge-data2.sql
[EOF]
--------------


# スキーマは -U なし。データはDB接続アカウントの権限で実行
psql -d hoge-db -f hoge-schema.sql
psql -d hoge-db -U foo -f hoge-data2.sql

psql -d hoge-db -f alter-tables.sql


wgetかなんかでOLDServerからDLした後、DB作成してコマンドとAlterのSQLをま
とめて実行かけて、適切なACLを設定。

[ alter-tables.sql ]
------------------
ALTER TABLE test OWNER TO foo;
REVOKE ALL ON TABLE test FROM postgres;
------------------
このページの先頭へ