【mysqldumpによるバックアップ】
# mysqldump --default-character-set=latin1 -u root -p dbname > /home/ backup.sql
今回はデフォルトがlatin1だったのでオプションで指定。ファイルをひらくと、きれ いに日本語が表示されているのを確認。
【サクラエディタで内容を確認】
mysqldumpしたファイルをUTF8で開いたサクラエディタにコピーしてUTF8の形式で保存する。UTF8にするためにbackup.sqlの一番上に
SET NAMES utf8;
を記述する。これでMySQLにUTF8で入力されます。
【データを復元する】
データを復元するとき
Got a packet bigger than 'max_allowed_packet' bytes
というエラーがよく出ます。おそらくデータを入れるときにサイズがでかすぎると言っています。これはオプションで --max_allowed_packet を使います。
mysql --max_allowed_packet=128M -u root -p dbname < /home/backup.sql
メモリの容量は適宜変更します。これでも上手くいかない場合は/etc/my.cnfに設定を書きます。
[mysqld] ・・・ ・・ ・ max_allowed_packet=128M [mysql.server]
MySQLを再起動させて復元します。
# service mysqld restart # mysql -u root -p dbname < /home/backup.sql
以上でUTF8としてバックアップしたデータが復元されました。 ちなみにこれでphpmyadminからでも日本語での表示を確認することができました。
タグ : 文字化け 文字コード utf8 バックアップ phpmyadmin MySQL

