さくらインターネットでMySQLのバックアップを取る場合、phpMyAdminを使ってエクスポートを行うのですが、データベースでUTF8を使っている場合、コメントはEUC-JP、テーブルデータはUTF8というイヤーな感じの文字化けが発生します。
これは相当に気持ち悪いんで、SSHで直に繋いでバックアップを取ることにしました。
> mysqldump --host=mysql99.db.sakura.ne.jp --user=user_name --password=password --opt -Q database_name > /home/yuki2021/db_dump.sql
上記でエラー発生。
mysqldump: Error: 'You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT DISTINCT LOGFILE_GROUP_NAME FROM INFORMATION_SCHEMA.FILE' when trying to dump tablespaces
mysqldump: Got error: 1044: Access denied for user: 'yuki2021@%' to database 'database_name' when selecting the database
ググってみたところ、さくらインターネットのMySQLのバージョンが4.0の時に発生するエラーの模様。
MySQLでエラーメッセージが出たけど原因が・・・【解決】 - cleverOne.net since 2003
ひとまず訂正して、もう一度コマンドを入力。
mysqldump-4.0 --opt -Q --host=mysql99.db.sakura.ne.jp -u user_name --password=password database_name > /home/yuki2021/db_dump.sql
今度はすんなりと通る。しかしファイルを開けてみると文字化け! ざっけんなと悪態を吐きつつ、おもむろにコマンドを変更。
> mysqldump-4.0 --opt -Q --host=mysql99.db.sakura.ne.jp -u user_name --password=password --default-character-set=utf8 database_name > /home/yuki2021/db_dump.sql
mysqldump-4.0: Character set 'utf8' is not a compiled character set and is not specified in the '/usr/local/mysql/4.0/share/mysql/charsets/Index' file
タラヲよりうぜぇ…。mysqldumpの文字化けは対処方法があったなということでまた変更。
> mysqldump-4.0 --opt -Q --host=mysql99.db.sakura.ne.jp -u user_name --password=password --default-character-set=binary database_name > /home/yuki2021/db_dump.sql
mysqldump-4.0: Character set 'binary' is not a compiled character set and is not specified in the '/usr/local/mysql/4.0/share/mysql/charsets/Index' file
( ゚∀゚)アハハ八八ノヽノヽノヽノ \ / \/ \
mysqldump-4.0 --opt -Q --host=mysql99.db.sakura.ne.jp -u user_name --password=password --default-character-set=latin1 database_name > /home/yuki2021/db_dump.sql
今度は問題なくとおる。しかしvimで確認すると文字化け。。
phpMyAdminからエクスポートしたファイルを秀丸で修正することに。。
さくらインターネットのMySQLはバージョン5.0に変えることにしました。さらばタラヲ。
□参考サイト様
MySQL mysqldumpでUJISのテーブルをバックアップする方法
MySQL 4.1 から 5.0に、文字化けせずにmysqldumpでデータを移行する - Goodpic