详细出错信息:
Incorrect string value: '\xF0\x9F\x92\x9C' for column 'NickName' at row 123
Incorrect string value: '\xF0\x9F\x8C\xB9\xE7\x97...' for column 'NickName' at row 587
Incorrect string value: '\xF0\x9F\x98\x8A\xE6\xB5...' for column 'NickName' at row 1436
Incorrect string value: '\xF0\x9F\x98\x8D' for column 'NickName' at row 643
Incorrect string value: '\xF0\xA3\xA1\xBD\xF0\xA8...' for column 'NickName' at row 614
Incorrect string value: '\xF0\x9F\x92\xA6' for column 'NickName' at row 1404
Incorrect string value: '\xF0\x9F\x8C\x80 ...' for column 'NickName' at row 1469
Incorrect string value: '\xF0\x9F\x92\x80' for column 'NickName' at row 810
Incorrect string value: '\xF0\x9F\x99\x8A\xE5\x85...' for column 'NickName' at row 1163
Incorrect string value: '\xF0\x9F\x98\xB1' for column 'NickName' at row 682
Incorrect string value: '\xF0\x9F\x94\x85\xE6\x80...' for column 'NickName' at row 1267
Incorrect string value: '\xF0\x9F\x92\x8BS_...' for column 'NickName' at row 134
Incorrect string value: '\xF0\x9F\x92\x8B' for column 'NickName' at row 582
Incorrect string value: '\xF0\x9F\x98\x98\xE6\xB3...' for column 'NickName' at row 1406
Incorrect string value: '\xF0\x9F\x92\x8B' for column 'NickName' at row 764
Incorrect string value: '\xF0\x9F\x90\xAC' for column 'NickName' at row 1278
13 个解决方案
#1
show variables like 'char%';
统一一下字符集
set names 'gbk';
统一一下字符集
set names 'gbk';
#2
show variables like 'char%';
用BCP导出再用LOAD DATA INIFILE导入试试
用BCP导出再用LOAD DATA INIFILE导入试试
#3
设成gbk的字符集导试试
#4
set names 'gbk'; 然后再操作。
http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
MySQL 中文显示乱码
http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
MySQL 中文显示乱码
#5
不是乱码,是大部份数据导入进来了,但有些出错,中文的也没有问题,只是个别数据有问题,但是是用MySQL Migration Toolkit导入的,所以我不知道到底哪条数据有问题
#6
只有1个表1个表导入,看看问题出在什么表中,再确定什么记录出问题
#7
我能确定吧个表,还可以确定哪个字段,但是没办法确定哪条记录有问题,MySQL Migration Toolkit是只报错误,看不到具体吧条出了问题的
#8
用BCP导出这个 表的记录,再用LOAD DATA INIFILE导入MYSQL中,确定是哪条记录
出问题
出问题
#9
到底是导入时出错?还是导出时出错?
如果是导入,则可以先手工编辑一下文本文件,把内容拆分,看执行到哪一部分出的问题。
如果是导入,则可以先手工编辑一下文本文件,把内容拆分,看执行到哪一部分出的问题。
#10
谢谢各位了,虽然还是没有找到原因,我换另一个工具导入没有问题了,可能是MySQL Migration Toolkit这个工具本身有问题吧
#11
难道UTF-8的不能插入数据吗
#12
这种请况是数据库字符集设置问题。utf8可以插入数据的。
你使用的是mysql administrator工具吧。那样比较方便。有两个方法解决。
方式一:安装mysql后,软件自带的mysql server instance config wizard来重新配置数据库,“开始菜单”——“程序”——“mysql”——“mysql server instance config wizard”,在配置过程中,遇到一个设置default char set的地方(有3个选项,选最下面一个),设置默认为utf8即可。这个方法可以从根本上解决。
方式二:另外,如果不想改变整个数据库的配置,可以选择改变表和数据表相应的列的字符集配置。
用这条语句show full columns from TABLENAME;来查看某数据表的所有列的信息,我们可以看到其字符集。
若要改变数据表的字符集:进入mysql query browser,然后选择“你要操作的数据库”——“你要输入数据的数据表”右击,编辑表,选择“table options”,可以看到设置char set。若要可以输入
中文,设置为utf8。
这样如果还不行,还需要设置你需要输入中文的那一列的字符集:进入edit table界面,单击列,然后选择下方的Column Details。这时可以可以设置字符集为utf8.
以上两种方法应该可以解决问题,你试试吧。如果通过了,可以给分就好了。呵呵
你使用的是mysql administrator工具吧。那样比较方便。有两个方法解决。
方式一:安装mysql后,软件自带的mysql server instance config wizard来重新配置数据库,“开始菜单”——“程序”——“mysql”——“mysql server instance config wizard”,在配置过程中,遇到一个设置default char set的地方(有3个选项,选最下面一个),设置默认为utf8即可。这个方法可以从根本上解决。
方式二:另外,如果不想改变整个数据库的配置,可以选择改变表和数据表相应的列的字符集配置。
用这条语句show full columns from TABLENAME;来查看某数据表的所有列的信息,我们可以看到其字符集。
若要改变数据表的字符集:进入mysql query browser,然后选择“你要操作的数据库”——“你要输入数据的数据表”右击,编辑表,选择“table options”,可以看到设置char set。若要可以输入
中文,设置为utf8。
这样如果还不行,还需要设置你需要输入中文的那一列的字符集:进入edit table界面,单击列,然后选择下方的Column Details。这时可以可以设置字符集为utf8.
以上两种方法应该可以解决问题,你试试吧。如果通过了,可以给分就好了。呵呵
#13
原因是UTF-8编码有可能是两个、三个、四个字节。Emoji表情或者某些特殊字符是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去。
#1
show variables like 'char%';
统一一下字符集
set names 'gbk';
统一一下字符集
set names 'gbk';
#2
show variables like 'char%';
用BCP导出再用LOAD DATA INIFILE导入试试
用BCP导出再用LOAD DATA INIFILE导入试试
#3
设成gbk的字符集导试试
#4
set names 'gbk'; 然后再操作。
http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
MySQL 中文显示乱码
http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
MySQL 中文显示乱码
#5
不是乱码,是大部份数据导入进来了,但有些出错,中文的也没有问题,只是个别数据有问题,但是是用MySQL Migration Toolkit导入的,所以我不知道到底哪条数据有问题
#6
只有1个表1个表导入,看看问题出在什么表中,再确定什么记录出问题
#7
我能确定吧个表,还可以确定哪个字段,但是没办法确定哪条记录有问题,MySQL Migration Toolkit是只报错误,看不到具体吧条出了问题的
#8
用BCP导出这个 表的记录,再用LOAD DATA INIFILE导入MYSQL中,确定是哪条记录
出问题
出问题
#9
到底是导入时出错?还是导出时出错?
如果是导入,则可以先手工编辑一下文本文件,把内容拆分,看执行到哪一部分出的问题。
如果是导入,则可以先手工编辑一下文本文件,把内容拆分,看执行到哪一部分出的问题。
#10
谢谢各位了,虽然还是没有找到原因,我换另一个工具导入没有问题了,可能是MySQL Migration Toolkit这个工具本身有问题吧
#11
难道UTF-8的不能插入数据吗
#12
这种请况是数据库字符集设置问题。utf8可以插入数据的。
你使用的是mysql administrator工具吧。那样比较方便。有两个方法解决。
方式一:安装mysql后,软件自带的mysql server instance config wizard来重新配置数据库,“开始菜单”——“程序”——“mysql”——“mysql server instance config wizard”,在配置过程中,遇到一个设置default char set的地方(有3个选项,选最下面一个),设置默认为utf8即可。这个方法可以从根本上解决。
方式二:另外,如果不想改变整个数据库的配置,可以选择改变表和数据表相应的列的字符集配置。
用这条语句show full columns from TABLENAME;来查看某数据表的所有列的信息,我们可以看到其字符集。
若要改变数据表的字符集:进入mysql query browser,然后选择“你要操作的数据库”——“你要输入数据的数据表”右击,编辑表,选择“table options”,可以看到设置char set。若要可以输入
中文,设置为utf8。
这样如果还不行,还需要设置你需要输入中文的那一列的字符集:进入edit table界面,单击列,然后选择下方的Column Details。这时可以可以设置字符集为utf8.
以上两种方法应该可以解决问题,你试试吧。如果通过了,可以给分就好了。呵呵
你使用的是mysql administrator工具吧。那样比较方便。有两个方法解决。
方式一:安装mysql后,软件自带的mysql server instance config wizard来重新配置数据库,“开始菜单”——“程序”——“mysql”——“mysql server instance config wizard”,在配置过程中,遇到一个设置default char set的地方(有3个选项,选最下面一个),设置默认为utf8即可。这个方法可以从根本上解决。
方式二:另外,如果不想改变整个数据库的配置,可以选择改变表和数据表相应的列的字符集配置。
用这条语句show full columns from TABLENAME;来查看某数据表的所有列的信息,我们可以看到其字符集。
若要改变数据表的字符集:进入mysql query browser,然后选择“你要操作的数据库”——“你要输入数据的数据表”右击,编辑表,选择“table options”,可以看到设置char set。若要可以输入
中文,设置为utf8。
这样如果还不行,还需要设置你需要输入中文的那一列的字符集:进入edit table界面,单击列,然后选择下方的Column Details。这时可以可以设置字符集为utf8.
以上两种方法应该可以解决问题,你试试吧。如果通过了,可以给分就好了。呵呵
#13
原因是UTF-8编码有可能是两个、三个、四个字节。Emoji表情或者某些特殊字符是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去。