开发者社区> 问答> 正文

Mysql 字符集utf8mb4设置无效,数据库报错

"

背景:由于要解决java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94' for column 'name' at row 1异常,所以要修改mysql字符集,改为utf8mb4。

修改字符集参考文章如下(参考修改后都没有效果):

https://www.jb51.net/article/144079.htm

https://blog.csdn.net/u014034329/article/details/80969246

mysql信息:

version:5.7.22免安装版

路径:D:\Work_Program_Files\mysql

my.ini文件信息:

[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
init_connect='set names utf8mb4'
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

mysql已经配置成windows服务,并且启动成功。但是通过navicatformysql登录mysql,通过show VARIABLES like 'char%'; 命令查询出结果为如下:

变量character_set_client、character_set_connection、character_set_results、character_set_system没有改为utf8mb4

问题:如何修改mysql字符集,保证character_set_client、character_set_connection、character_set_results、character_set_system变量的字符集为utf8mb4

" ![image.png](https://ucc.alicdn.com/pic/developer-ecology/09d66a13bffe4eeb8689d1379bc75f44.png)

展开
收起
python小菜菜 2020-06-01 19:27:50 2442 0
1 条回答
写回答
取消 提交回答
  • "

    没人愿意回答嘛?

    ######

    你建数据库的时候直接把字符集建成utf8mb4  然后name字段的字符集也设置成utf8mb4应该就可以解决这个问题的

    ######谢谢回答! 再请教下,character_set_database和character_set_server已经是utf8mb4,应该是建库的时候设置的, 而character_set_client、character_set_connection、character_set_results、character_set_system这四个 参数是哪里设置的呢?######

    其实不用设置这么多参数。

    只需要这样设置就可以了:

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

    然后你还要把现有数据库转换成utf8mb4。

    ######

    试一下重启数据库,看下能不能解决

    ######

    我遇到了和你一样的情况。。。。你后面是怎么解决的。虽然插入表情的问题解决了,但是我还是想问下为啥character_set_client、character_set_connection、character_set_results、character_set_system变量的字符集为utf8mb4不生效。

    ######很遗憾,没有解决mysql数据库utf8mb4编码设置问题######

    最后怎么解决的?我的今天也突然变成这样了,怎么改都不起效果。

    ######回复 @心急如焚 : 我的已经解决,其实设置是对的。但是Navicat默认使用的是utf-8编码。而且还改不了。当时使用的是Navicat 10这个版本,最后换了一个Navicat 12 就正常了。在>mysql命令行下进行查询实际上已经全是utf8mb4编码。证明设置已经成功。######很遗憾,没有解决mysql数据库utf8mb4编码设置问题,不过生僻字问题有解决" ![image.png](https://ucc.alicdn.com/pic/developer-ecology/ae6f6fe724ab4e81875d6e7f2026b78a.png)
    2020-06-01 19:28:00
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
DTCC 2022大会集锦《云原生一站式数据库技术与实践》 立即下载
阿里云瑶池数据库精要2022版 立即下载
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载

相关镜像