文字コードを確認
mysql> status -------------- mysql Ver 14.12 Distrib 5.0.45, for redhat-linux-gnu (i686) using readline 5.0 Connection id: 18653 Current database: Current user: root@localhost SSL: Not in use Current pager: stdout Using outfile: '' Using delimiter: ; Server version: 5.0.45 Source distribution 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: 131 days 9 hours 24 min 48 sec Threads: 1 Questions: 1717954 Slow queries: 0 Opens: 2870 Flush tables: 1 Open tables: 62 Queries per second avg: 0.151 -------------- mysql> show create database test; +----------+-----------------------------------------------------------------+ | Database | Create Database | +----------+-----------------------------------------------------------------+ | test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET latin1 */ | +----------+-----------------------------------------------------------------+ 1 row in set (0.00 sec)
latin1 なので、
$ mysqldump -a -u root test -p --default-character-set=latin1 > test.mysql.dump
「CHARSET=latin1」となっているのを utf8 に 置換する。
$ sed 's/latin1/utf8/g' test.mysql.dump > test.mysql.utf8.dump
インポート
$ mysql -u root -p new_dbname < test.mysql.utf8.dump