• 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/
    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.

     
  • 相关阅读:
    FreeSql学习笔记——11.LinqToSql
    前端实现阿里云oss直传 进度条
    Mysql授权用户 库名带横线的方法
    Clickhouse 单机版
    Linux OOM Killer
    git clone 失败 443 解决方法
    sentinel 基本原理
    sentinel 简介
    sentinel 中rule的加载过程
    vuex 重置清空所有数据(注意这里使用的Vuex4.x,3.x不可以这样实现重置数据)
  • 原文地址:https://www.cnblogs.com/ikei/p/7119970.html
Copyright © 2020-2023  润新知