首先检查默认字符集名称是否为utf8。
SELECT default_character_set_name FROM information_schema.SCHEMATA S WHERE schema_name = "DBNAME";
如果结果不是utf8,则必须转换数据库。一开始你得存一堆垃圾。
要将指定数据库中所有表的字符集编码更改为utf-8,请在命令行中键入以下命令。将dbname替换为数据库名称:
mysql --database=DBNAME -B -N -e "SHOW TABLES" | awk '{print "SET foreign_key_checks = 0; ALTER TABLE", $1, "CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; SET foreign_key_checks = 1; "}' | mysql --database=DBNAME
若要将数据库本身的字符集编码更改为utf-8,请在
MySQL
>提示。将dbname替换为数据库名称:
ALTER DATABASE DBNAME CHARACTER SET utf8 COLLATE utf8_general_ci;
现在可以尝试将utf8字符写入数据库。当我尝试将200000行csv文件上载到数据库时,此解决方案对我有帮助。