向mysql插入数据是出现Incorrect string value错误


在向Mysql中添加中文数据时,报错(incorrect string value ) 字符转换不正确

插入语句:mysql>  insert into user1 (name,password,email,age) values ('zs',md5('123456'),'zs@sohu.com',30);

返回错误:ERROR 1366 (HY000): Incorrect string value: '\xE5\xBC\xA0\xE4\xB8\x89' for column 'name' at row 1

将插入语句中的中文改为英文后问题消失,顺利出入

插入语句:mysql>  insert into user1 (name,password,email,age) values ('赵六',md5('123456'),'zl@sohu.com',60);

这个问题,原因是UTF-8编码有可能是两个、三个、四个字节。而Mysql的utf8编码最多3个字节,遇到超过3个字节的的数据就插不进去。

在网上找到了解决办法

1.在Mysql的安装目录下有一个文件叫做my.ini。(如没有可以自己新建一个)
在其中添加两句:

[mysqld]
character-set-server=utf8mb4
[mysql]
default-character-set=utf8mb4


然后进行重启Mysql服务。

也可以用命令将数据库转换格式

 alter database 数据库名  character set utf8mb4 collate utf8mb4_general_ci;

2.将已经建好的表也转换为utf8mb4格式

alter table 表名 convert to character set utf8mb4 collate utf8mb4_bin;

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM