MySQL 1366错误解决办法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL 1366错误解决办法相关的知识,希望对你有一定的参考价值。

mysql 1366错误大致描述如下

  1. SQL Error: 1366: Incorrect string value: "xE8xAFxA6xE7xBBx86…" for column "address" at row 1

解决办法:检查数据库此字段的字符集与整理字符集是否与SQL语句传递数据的字符集相同;不相同则会引发MySQL1366错误。

修改MySQL该字段的字符集与整理规则即可。假设数据表为phplamp, SQL语句的字符集为utf8,出错的字段为address:

MySQL 1366 错误解决办法
  1. #检查数据表所有字段的状态
  2. ->show full columns from phplamp;
  3. #发现address字段的Collation项非utf8,修改它!
  4. ->alter table phplamp change name name varchar(100) character set utf8 collate utf8_unicode_ci not null default ‘‘;

修改完字段的字符集后可以再使用show full columns from table_name命令检查一下,以确保万无一失。假如您的SQL字符集为GBK或是GB2312或是其它的话,只需要将数据表字段的字符集更改为其相应的编码即可。

 

mysql[ERROR 1366 (HY000):错误]中文显示问题

mysql的字符集用utf8也解决不了中文的编码问题,用gbk才能解决。所以总结一下如果更改编码:
停掉mysql服务,修改my.ini文件,修改两处default-character-set=gbk。启动mysql服务。再次插入,还是有问题。

用status看了一下:

mysql> status;

原来

Current database:  order_movie_ticket

Server characterset:    utf8

Db     characterset:    utf8

Client characterset:    gbk

Conn.  characterset:    gbk

虽然Client characterset和Conn. characterset都改成了gbk, Db characterset的字符集还是utf8,所以仍出现中文乱码。

所以要把它设回gbk,用alter命令。

mysql> alter database order_movie_ticket character set gbk;

因为只改了order_movie_ticket这一个db,所以直接用status查结果还是Db characterset的字符集为utf8,但是若转入order_movie_ticket,只看他自己的

mysql> use order_movie_ticket;

再用status看一下,这回对了。再次插入数据,这回正确了。

要注意的是以上改的前提是database order_movie_ticket里是空的,如果它的一些表里已经有数据就不能只改db了,还要用alter命令改相应的table,

如:mysql> alter table movie character set gbk;

可以通过如下命令

mysql> show create table movie; 来看表的create命令形式的结构和表的字符集。

----------------------------------------------------------

movie | create table ‘movie‘ (

‘movie_id‘ bigint(20) not null auto_increment,

‘name‘ varchar(50) not null,

‘actor‘ varchar(100) not null,

‘director‘ varchar(30) not null,

‘classification‘ varchar(30) default null,

‘story‘ varchar(200) default null,

‘valid‘ char(1) not null default ‘Y‘,

primary key (‘movie_id‘)

) ENGINE=InnoDB DEFAULT CHARSET=gbk

以上是关于MySQL 1366错误解决办法的主要内容,如果未能解决你的问题,请参考以下文章

Python操作MySQL 1366错误解决方案

Navicat for MySql 输入中文字符,提示1366错误的解决方法

在查MySQL 1366的错误原因

关于“WARN: SQL Error: 1366, SQLState: HY000”错误的解决方案

Mysql - php上传数据 - 错误 - 1366 Incorrect String value

关于mysql新建的表不能插入中文的问题&解决办法,比如[Err] 1366 - Incorrect string value: 'xE5xB0x8FxE5xB0x8F&#