[MySQL][mysqldump]mysqldumpで文字化けする

文字コードを特に気にせずMySQLをインストールしていると、mysqldumpで取り出したデータが文字化けすることが多々ある。

mysql> status;
                          • -
mysql Ver 14.7 Distrib 4.1.22, for pc-linux-gnu (i686) using readline 4.3 Connection id: 1 Current database: Current user: root@localhost SSL: Not in use Current pager: stdout Using outfile: '' Using delimiter: ; Server version: 4.1.22-standard-log Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: latin1 Db characterset: latin1 Client characterset: latin1 Conn. characterset: latin1 UNIX socket: /var/lib/mysql/mysql.sock Uptime: 57 sec Threads: 1 Questions: 3 Slow queries: 0 Opens: 11 Flush tables: 1 Open tables: 5 Queries per second avg: 0.053
                          • -
mysql> show variables like "%char%";
                                                                                                                • +
Variable_name | Value |
                                                                                                                • +
character_set_client | latin1 | character_set_connection | latin1 | character_set_database | latin1 | character_set_results | latin1 | character_set_server | latin1 | character_set_system | utf8 | character_sets_dir | /usr/share/mysql/charsets/ |
                                                                                                                • +
7 rows in set (0.00 sec)

こういう場合はmysqldumpに「--default-character-set=latin1」をつけるとダンプデータが文字化けしなくなる。

mysqldump -u root -p --default-character-set=latin1 database_name table_name > dump.sql

[参照] mysql:11273
http://www.mysql.gr.jp/mysqlml/mysql/msg/11273