将数据从MSSQL2005迁移到MYSQL5,使用的是MySQL Migration Toolkit,MYSQL数据库和表以及字段都是UTF-8的格式,NickName是用户输入的内容,有些特殊字符,难道GBK能存的字符在UTF-8下还会存不进去?详细出错信息:
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

解决方案 »

  1.   

    show variables like 'char%';
    统一一下字符集
    set names 'gbk';
      

  2.   

    show variables like 'char%'; 
    用BCP导出再用LOAD DATA INIFILE导入试试
      

  3.   

    set names 'gbk'; 然后再操作。http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码
      

  4.   


    不是乱码,是大部份数据导入进来了,但有些出错,中文的也没有问题,只是个别数据有问题,但是是用MySQL Migration Toolkit导入的,所以我不知道到底哪条数据有问题
      

  5.   

    我能确定吧个表,还可以确定哪个字段,但是没办法确定哪条记录有问题,MySQL Migration Toolkit是只报错误,看不到具体吧条出了问题的
      

  6.   

    用BCP导出这个 表的记录,再用LOAD DATA INIFILE导入MYSQL中,确定是哪条记录
    出问题
      

  7.   

    谢谢各位了,虽然还是没有找到原因,我换另一个工具导入没有问题了,可能是MySQL Migration Toolkit这个工具本身有问题吧
      

  8.   

    这种请况是数据库字符集设置问题。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.以上两种方法应该可以解决问题,你试试吧。如果通过了,可以给分就好了。呵呵