zoukankan      html  css  js  c++  java
  • 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


    作者:Kei
    出处:http://www.cnblogs.com/ikei/
    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.

     
  • 相关阅读:
    Innodb之线程独享内存
    Innodb之全局共享内存
    mysql三层体系
    grep/字符/次数匹配/锚定符/小大括号/wc/tr/cut/sort/uniq
    Mysql多字段模糊查询
    小程序中使用less(最优方式)
    js控制文本框只能输入中文、英文、数字与指定特殊符号
    连接 MySQL 数据库出现问题:The server time zone value ‘�й���׼ʱ��‘ is unrecogni....
    Mysql聚簇索引和非聚簇索引
    npm run dev 和 npm run serve
  • 原文地址:https://www.cnblogs.com/ikei/p/7119970.html
Copyright © 2011-2022 走看看