向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;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!