MySQL ERROR 1366(HY000):Incorrect string value:''for column''at row 1解决方案




标题: MySQL ERROR 1366(HY000):Incorrect string value:''for column''at row 1解决方案

作者: lōττéry ©版权所有[文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.]



前言:
今天在source db_patch.sql 执行sql时报 ERROR 1366 (HY000): Incorrect string value: '\xCE\xDE\xB5\xC8\xBC\xB6' for column 'name' at row 12错

原因:
s ql 文件字符集编码和数据库或表的字符集不符 

*** 数据库和表字符集 都是 utf8 
*** 文件字符集 ISO-8859

解决方案:   将.sql文件 字符集改为utf-8[数据库字符集] 【本环境方案】

如下为三种不同环境的更改字符集方案 

1) Linux 更改文件编码

[root@lottery ~]# file db_patch.sql        --查看文件字符集编码

db_patch.sql: ISO-8859 text, with very long lines, with CRLF line terminators 

[root@ lottery ~]# iconv -f  ISO-8859-1  -t UTF-8 db_patch.sql > db_patch1.sql    --更改文件字符集另存为一个新文件

参数介绍:  
-f, --from-code=名称 原始文本编码
-t, --to-code=名称 输出编码
-l,--list 列举所有已知的字符集 
心细的人可能会发现 -f后是   ISO-8859-1  而非fille 看到的 ISO-8859编码
那是因为执行  iconv -f ISO-8859 -t  UTF-8  db_patch.sql > db_patch1.sql 
    报错信息: iconv: 不支持以“ISO-8859”为源头的转换
                     试用“iconv --help”或“iconv --usage”以获取更多信息。
[root@lottery ~ ]# iconv -l|grep ISO-8859     --列一下iso-8859编码号信息
ISO-8859-1//
ISO-8859-2//
ISO-8859-3//
ISO-8859-4//
ISO-8859-5//
ISO-8859-6//
ISO-8859-7//
ISO-8859-8//
ISO-8859-9//
ISO-8859-9E//
ISO-8859-10//
ISO-8859-11//
ISO-8859-13//
ISO-8859-14//
ISO-8859-15//
ISO-8859-16//
[root@lottery ~ ]# 所以随意找一个ISO-8859-1// 进行转换即可..

转换后的字符集查看

          [root@lottery ~]# file db_patch1.sql 

          db_patch1.sql: UTF-8 Unicode text,with very long lines, with CRLF line terminators

          [root@lottery ~]#

          mysql> source db_patch1.sql;

          Query OK, 2 rows affected (0.00 sec)

          Records: 2  Duplicates: 0  Warnings: 0

          mysql> 

 

2)Windows上更改文件编码 ,打开文件 另存为时下端编码部分设置utf-8 

       

      再执行另存为utf-8格式的文件即可..

3) 数据库上更改字符集

      set names utf-8   
      
      生产环境建议衡量下,避免对其他会话 其他客户端有影响..


  【源于本人笔记】 若有书写错误,表达错误,请指正... 


此条目发表在 MySQL 分类目录。将固定连接加入收藏夹。



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28602568/viewspace-1651067/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28602568/viewspace-1651067/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值