
mysql 错误提示1366 Incorrect string value: '....' for column 'VARIABLE_VALUE' at row1, 那个V找不到
完整错误提示,我建的数据库里没有这个码,找来找去只有系统的库里有这个,我照网上说的把那个系统表里的VARIABLE_VALUE这一属性的字符集全改成了utf8,但是没用,而且原来只有一行错误,现在连接前一行,连接后一行,急死了,都纠结两个多小时了,在线等高人求解,我都想砸电脑了 展开
mysql[ERROR 1366 (HY000):错误]中文显示问题
mysql的字符集用utf8也解决不了中文的编码问题,用gbk才能解决。所以总结一下如果更改编码:
停掉mysql服务,修改my.ini文件,修改两处default-character-set=gbk。启动mysql服务。再次插入,还是有问题。
用status看了一下:
mysql> status;
原来
Connection id: 25
Current database: order_movie_ticket
Current user: root@localhost
SSL: Not in use
Using delimiter: ;
Server version: 5.1.45-community MySQL Community Server (GPL)
Protocol version: 10
Connection: localhost via TCP/IP
Server characterset: utf8
Db characterset: utf8
Client characterset: gbk
Conn. characterset: gbk
TCP port: 3306
Uptime: 6 min 31 sec
虽然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 的时候选择的是默认的编码,或者你选择的UTF8,所以在插入数据的时候出现编码的错误。解决方法是找到Mysql的安装目录下的my.ini文件,把里面的default-character-set=GBK 但是需要注意,这里设成GBK之后在页面里面也需要设成GBK,否则会出现编码不一致,会出现乱码。
利用前端工具修改每个字段的格式都是gbk,因为你要利用cmd工具来insert数据。
MySQL 1366错误大致描述如下:
SQL Error: 1366: Incorrect string value: "\xE8\xAF\xA6\xE7\xBB\x86…" for column "address" at row 1
数据库此字段的字符集与整理字符集是否与SQL语句传递数据的字符集相同;不相同则会引发MySQL1366错误。
MySQL 1366 错误解决办法 :
#检查数据表所有字段的状态
->show full columns from phplamp;
#发现address字段的Collation项非utf8,修改它!
>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的命令: 修改数据表的字符集与整理
->show full columns from table_name;
----------------------------------------------------------------
楼主,你太幽默了,
请做一下操作:
show variables like '%char%';
show create table tbname;
把显示的信息贴出来
我用的toad for mysql啊,这命令要用提示符敲的吧
对,最好是登陆到mysql命令行操作
