导出: mysqldump -p my_database > my_database.sql
转码: iconv -t utf-8 -f gb2312 -c my_database.sql > new.sql
修改new.sql,增加一条sql语句 "SET NAMES utf8;"
导入: mysql -h localhost -u root -p my_database < new.sql
或者 cat new.sql | /usr/bin/mysql -uroot -ppasswd databasename
####### latin1 to utf8
iconv -f latin1 -t utf8 /path/data_latin1.sql -o /path/data_utf8.sql
vi /path/data_utf8.sql
增加一条sql语句 "SET NAMES gbk;"
mysql -uroot -ppasswd
source /path/data_utf8.sql
以原来的字符集为latin1为例,升级成为utf8的字符集。原来的表: old_table (default charset=latin1),新表:new_table(default charset=utf-8 )。
第一步:导出旧数据
mysqldump --default-character-set=latin1 -hlocalhost -uroot -B my_db --tables old_table > old.sql
第二步:转换编码
iconv -t utf-8 -f gb2312 -c old.sql > new.sql
在这里,假定原来的数据默认是gb2312编码。
第三步:导入
修改old.sql,增加一条sql语句: "SET NAMES utf8;",保存。
mysql -hlocalhost -uroot my_db < new.sql