解决MySQL插入中文报错的问题。

文章讲述了在使用DBeaver执行包含中文的SQL脚本时遇到的编码问题,解决方案是在my.ini中设置character-set-server和default-character-set为utf8mb4,并提示注意新旧数据库编码的区别。
摘要由CSDN通过智能技术生成

遇到这个问题的起因嘛,是我用DBeaver执行sql脚本,执行到插入中文的语句时报错,当然这个问题还是蛮好解决的

设置命令参数为

--default-character-set=utf8

就能继续执行了。

如果懒得看废话想快速解决只需要去my.ini下修改,两个参数为utf8然后重启mysql服务,这样新建的库就解决了

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

本文完结。

哈哈,开个玩笑,我对这件事也很好奇,为什么DBeaver执行sql脚本没有使用utf8编码呢?

结果一尝试发现,我自己建库建表竟然也插入不了中文?

我进行了建库建表操作

create table try2
(
    id   int(10)     not null
        primary key,
    name varchar(10) null
);

然后执行如下代码,查看表的创建过程,在最后一行可以看到默认编码是latin1,而我在建表时并没有指定编码方式

show create table try2;

执行代码,查看数据库编码

show variables like “%character%”

可以看到 character_set_database和character_set_server都是latin1。

set_database是创建数据库的默认编码格式,se_server是设置mysql服务器的默认编码格式(其他的有兴趣可以去自行了解)

而我们就把这两位都改为utf8即可

找到你的MySQL的下载目录,找到你的my.ini文件

做两处修改

在你的client和mysqld下分别设置utf8

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

保存后,再重MySQL服务,再查看一遍数据库编码

show variables like 'character%';

可以看到已经变为utf8,注意这里修改之后,新建数据库时会使用utf8m4编码,但是之前的数据库仍然是latin1编码的,所以不要用老数据库再建表尝试了(老数据库的话我也没有尝试怎么修改默认编码,倒是可以建表时设置default charset)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值