MySQLの場合
バックアップ
# mysqldump --default-character-set=encode -u user_name -p db_name > filename
リストア
# mysql --default-character-set=encode -u user_name -p db_name < filename
補足
- --default-character-set で文字化けを防ぐ。
- -p でパスワードが必要なことを明示する。
PostgreSQL7の場合
バックアップ
# pg_dump -R -O -x -U user_name -f filename db_name
補足
レンタルサーバーでは、ユーザー名の変更・権限割り当てができない為、以下のオプションが必要。
- -R で接続コマンドを無視する。
- -O で権限コマンドを無視する。
- -x で grant/revoke を無視する。
リストア
# psql db_name user_name Password: ****** ←パスワードを入力 Welcome to psql 7.x.xx, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help on internal slash commands \g or terminate with semicolon to execute query \q to quit username=> \encoding encode ←エンコード指定 username=> \i filename ←リストア username=> \q
補足
PostgreSQL7ではバックアップ時、文字エンコードの指定をできない為、psqlからコマンドを打つ。
- psql でデータベースに接続。
- \encoding でバックアップファイルの文字エンコードを指定。
PostgreSQL8(Windows)の場合
バックアップ
# pg_dump -E encode -O -x -U user_name -f filename db_name
リストア
# psql -f filename db_name user_name
補足
レンタルサーバーでは、ユーザー名の変更・権限割り当てができない為、以下のオプションが必要。
- -E で文字化けを防ぐ。
- -O で権限コマンドを無視する。
- -x で grant/revoke を無視する。
執筆時点、PostgreSQL8の pg_restore で pg_dump のファイルが valid できないというバグ(?)があったので、psqlコマンドを使用した。