MySQL Error1366: incrrect string value...

记得当时在装MySQL时使用的是utf8作为默认字符编码的,然后一直用的时候插入的数据也都是英文,所以一直没碰到这个错误。

今天插入中文然后就弹出Error 1366,数据无法插入了。上网查了一些资料,感觉很多网友给的解决方案都没奏效,希望这里写的

东西可以帮到大家:

首先,如果你在安装MySQL时没注意到字符编码这个问题,那么系统默认的字符编码是Latin1,而这种编码是不支持中文的,所以

碰到问题也就无可厚非了。那我们要做的就是把默认的字符编码改过来:

第一、通过MySQL Configuration Wizard:

一路保持其他选项不变,直到下面:

选择Manual Selected Default Charater Set / Collation,里面选择utf8;

改动之后重新插入,你会发现还是插入错误,依然是 Error 1366,接下来修改MySQL安装目录下的一个my.ini的文件。

打开该文件,修改图中的default-character-set为GBK,

然后查看后面的mysqld标签里的character-set-server,让它保持utf8不变,

好了,保存之!!!然后你会发现无法保存或者保存失败等各种报错信息。网友提议停掉mysql的service就行,试了之后

完全没用。我们不妨从当前路径中将my.ini剪切出来,随便放到任何其他的目录,这时你会发现你需要管理员权限移动,恩,

没错,是权限问题。好了,保存之后然后再重新放回原位置。接下来重新插入中文,运行正常了。

时间: 2024-10-24 08:29:54

MySQL Error1366: incrrect string value...的相关文章

在MySQL向表中插入中文时,出现:incorrect string value 错误

在MySQL向表中插入中文时,出现:incorrect string value 错误,是由于字符集不支持中文.解决办法是将字符集改为GBK,或UTF-8.      一.修改数据库的默认字符集        ALTER DATABASE db_name DEFAULT CHARCTER SET character_name [COLLATE... ] 例子:ALTER TABLE db_mysql DEFAULT CHARCTER SET gbk          注释: (COLLATE是字

特殊符号存入mysql数据库时报错:Incorrect string value: '\xF0\x9F\x98\x84\xF0\x9F的解决方法

问题描述:从新浪微博抓取消息保存到MySQL数据中,对应数据库字段为varchar,字符编码utf-8.部分插入成功,部分插入失败,报错如标题. 在网上查询,有人说是编码问题,建议修改编码格式,比如改成gbk,UTF-8,blob等等,但是几乎没有人给出更详细的答案.在一个英文网站上,才发现真正错误的原因.链接1 链接2 错误原因:我们可以看到错误提示中的字符0xF0 0x9F 0x98 0x84 ,这对应UTF-8编码格式中的4字节编码(UTF-8编码规范).正常的汉字一般不会超过3个字节,为

Mysql 插入中文错误:Incorrect string value: '\xE7\xA8\x8B\xE5\xBA\x8F...' for column 'course' at row 1

create table my_user ( id tinyint(4) not null auto_increment, account varchar(255) default null, password varchar(255) default null, primary key (id) ) 插入语句 insert into my_user values('1','admin','admin'); insert into my_user values('2','admin','admi

emoji写数据库错误:“Incorrect string value: '\xF0\x9F\x91\x8D 2...' for column 'mark' at row 1” 解决方案

偶然遇到了这个问题,记录下来,关于编码以及数据库字符集相关的问题一直很麻烦. ??这个表情字符在存库时报告错误:Incorrect string value: '\xF0\x9F\x91\x8D 2...' for column 'mark' at row 1 解决方案如下: UTF-8编码有可能是两个.三个.四个字节,Emoji表情或者某些特殊字符是4个字节,而MySQL的utf8编码最多3个字节,所以数据插不进去. 我的解决方案是这样的 1.在mysql的安装目录下找到my.ini,作如下修

MYSQL 错误 :Out of resources when opening file './datagather/mx_domain#P#p178.MYD' (Errcode: 24) 解决办法

出现Out of resources when opening file './xxx.MYD' (Errcode: 24)错误是因为打开的文件数超过了my.cnf的--open-files-limit. open-files-limit选项无法在mysql命令行 直接修改,必须在my.cnf中设定,最大值是65536. 重新启动mysqld, mysql> show variables like 'open%'; +------------------+-------+ | Variable_

mysql错误:The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement解决方法

Mysql关系型数据库管理系统 MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司.MySQL被广泛地应用在Internet上的中小型网站中.由于其体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库. 本文为大家讲解的是mysql错误:The MySQL server is running with the --skip-grant-tables option so it cannot

mysql 1449 : The user specified as a definer ('root'@'%') does not exist 解决方法

程序在调用到数据库的视图时报错,直接在数据库中打开视图时也报错,类似: mysql 1449 : The user specified as a definer ('montor'@'%') does not exist 经查,是权限问题,解决办法: 运行:grant all privileges on *.* to [email protected]"%" identified by "."; 之后打开视图时便不会报错,程序调用也不会报错. 源地址的解释: 权限问

PHP的MySQL扩展:MySQL数据库概述

来源:http://www.ido321.com/1023.html 一.SQL:结构化查询语言 SQL(Structured Query Language)是高级的非过程化变成语言,专门用于查询和修改数据库的信息以及对数据库进行管理和维护的标准语言.SQL语言结构简单,功能强大,得到了众多DBMS的支持. SQL分为四个部分: 数据定义语言(DDL):用于定义和管理数据对象,包括数据库.数据表等.如create/drop/alter等 数据操作语言(DML):操作数据库对象中包含的数据,如in

MySql数据库:Host 'localhost' is not allowed to connect to this MySQL server

修改mysql的root密码后,出现Host 'localhost' is not allowed to connect to this MySQL server 错误. 解决办法: C:\Program Files\MySQL\MySQL Server 5.5\my.ini 在[mysqld]下加下面两行, skip-name-resolveskip-grant-tables 重启mysql的windows服务 MySql数据库:Host 'localhost' is not allowed