如何将我的数据库中的所有表更改为UTF8字符集?
答
mysqldump --user=username --password=password --default-character-set=latin1 --skip-set-charset dbname > dump.sql
sed -r 's/latin1/utf8/g' dump.sql > dump_utf.sql
mysql --user=username --password=password --execute="DROP DATABASE dbname; CREATE DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;"
mysql --user=username --password=password --default-character-set=utf8 dbname < dump_utf.sql
答
对于单表,你可以做这样的事情:
ALTER TABLE标签转换为字符集是utf8 COLLATE utf8_unicode_ci;
整个数据库的我不知道,比同类其他方法来这样:
http://www.commandlinefu.com/commands/view/1575/convert-all-mysql-tables-and-fields-to-utf8
答
与你的数据库名称
SELECT CONCAT代替my_database_name
( 'ALTER TABLE',TABLE_NAME“转换为字符集utf8 COLLATE utf8_unicode_ci;')FROM information_schema.TABLES WHERE TABLE_SCHEMA ='my_database_name';
这将建立大量的查询,您可以运行
并希望你的数据库不包含在“latin1”内的任何内容,如有关字符编码的博客文章......否则你的用户可能有一个理由诉讼,如果你的后期转换网站突然提供错误的数据库命令! – 2014-05-15 07:06:08
在sed之后:uconv --from-code latin1 --to-code utf8 dump_utf.sql> dump_utf_fixed.sql – scribe 2015-06-05 01:10:22
什么是SED ????? – marcolopes 2017-08-04 01:44:39