首页
新闻
分析
评测
专题
视频
论坛
技巧
资源
问答
活动
课程
观点
数据
产品
搜索
搜索
MySQL字符集,永远的痛
2023-10-10 05:02
本文转载自微信公众号“于大令的推特”,作者于大令。转载本文请联系于大令的推特公众号。 最近迁移mysql,升级mysql版本,遇到了很多乱码(主要是表达问题),所以记录一下。 mysql字符集支持四级字符集以及相应的比较规则。例如服务器级别为character_set_server,数据库级别为character_set_database,还可以在表级别和列级别设置字符集,如: 创建数据库测试 CHARSET 设置 utf8mb4 COLLATE utf8_general_ci 另外,字符集比较也必须遵循规则。比较常用的比较规则是utf8_general_ci。 一般在启动服务器时配置: [mysqld] 字符集服务器 = utf8mb4 安装和创建库表时,尽量使用utf8mb4字符集。 对于客户端(如程序驱动、mysql工具集)来说,有3个与字符集相关的系统变量,分别是character_set_client、character_set_connection、character_set_results,用于客户端编解码以及与数据库的交互。 这三个参数实际上是通过默认字符集或集名称一次性指定的。 具体遇到的问题是: 1:指定mysql导入导出的default-character-set为utf8mb4,否则可能会出现乱码。 2:服务器级字符集配置为utf8mb4。即使未指定库、表和列,它们也会继承服务器级别的配置。 3; MySQL工具集,尝试显示指定-default-character-set字符集,例如: [客户端] 默认字符集=utf8mb4 [mysql] 默认字符集=utf8mb4 4:如果有代理,一定要指定代理上的字符集。 5:如果不知道是否有问题,可以通过phpmyadmin检查并修改,尤其是检查具体执行的mysql语句。 6:编译时指定字符集,例如:cmake -DDEFAULT_CHARSET=utf8mb4 -DEXTRA_CHARSETS=all -DDEFAULT_COLLATION=utf8mb4_general_ci 参考:https://www.hack95.com/doc/refman/5.7/en/server-system-variables.html
相关推荐
新闻
分析
评测
专题
视频
论坛
技巧
资源
问答
活动
课程
观点
数据
产品