バックアップと復元

サーバー移行でMySQLのバックアップと復元ではまったのでメモ。

下記ダンプ
mysqldump -A -u openpne -p1qaz2wsx --opt > /tmp/openpne.sql

コードがEUCになっていたのでUTF-8に変換。

移行サーバーの方のMySQLの設定をすべてUTF8にする

[mysqld]
set-variable=local-infile=0
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_unicode_ci
init-connect=SET NAMES utf8
bind-address = 127.0.0.1
# skip-networking
skip-character-set-client-handshake

skip-bdb

set-variable = innodb_buffer_pool_size=2M
set-variable = innodb_additional_mem_pool_size=500K
set-variable = innodb_log_buffer_size=500K
set-variable = innodb_thread_concurrency=2
[mysql.server]
user=mysql
basedir=/var/lib
default-character-set=utf8

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
skip-bdb

set-variable = innodb_buffer_pool_size=2M
set-variable = innodb_additional_mem_pool_size=500K
set-variable = innodb_log_buffer_size=500K
set-variable = innodb_thread_concurrency=2

[mysqldump]
default-character-set=utf8

mysql -u openpne -p[yourpass] --default-character-set=binary openpne < openpne_ut8.sql

でリストアするのですが、文字化けが治らない。うーんなんでだろう。
ファイルの先頭に、SET NAMES utf8;を入れて大丈夫と思いきや、治らない。

ふとファイルの先頭を付近を見ると
/*!40101 SET NAMES ujis */;
という文字が、コメントかなと思っていたのですが、もしやもしや。

削除してリストアしたらあっけなくうまくいきました。

はじめにファイルはEUCで出力されたのですから、せめて、
/*!40101 SET NAMES euc */;

にして欲しかった。。。無駄に3時間消費しました。