目录

逐梦DBAMySQL的编码设置

逐梦DBA:MySQL的编码设置

一、MySQL的编码设置

1.1 默认插入中文数据存在的问题

1.1.1 在 MySQL5.7 版本,默认在安装成功后存在中文乱码的问题

https://i-blog.csdnimg.cn/direct/a31a1e54c8c441f5945cfb37637309d3.png 1 通过 show create table xxx查看可以发现默认的字符集: https://i-blog.csdnimg.cn/direct/ae6694a13976440b8758cb9a0c325843.png 2 show variables like ‘character_%’;查看编码命令发现默认为拉丁 https://i-blog.csdnimg.cn/direct/c16414f5465c4ab0a11abc07836f4fd3.png 如果我们没有显示指定库或表使用的字符集,则使用默认的字符集

3 show variables like ‘collation_%’;查看比较规则(数据的比较相关) https://i-blog.csdnimg.cn/direct/c913935abd8e46cd84dd76fcfef5b293.png 1.1.2 在 MySQL8.0版本中,则不存在字符串SQL乱码问题 MySQL 8.0 开始,数据库的默认编码改为utf8mb4 ,从而避免了上述的乱码问题。 https://i-blog.csdnimg.cn/direct/31f9c59c366746afbf3962bec15b0bbf.png 1 我们依旧通过 show create table xxx查看可以发现默认的字符集: https://i-blog.csdnimg.cn/direct/0455d76da15b4183b73adacf23a07c47.png 2 show variables like ‘character_%’;查看编码命令发现默认为UTF8格式 https://i-blog.csdnimg.cn/direct/112d48b0599d4c74b1cfa5e82bd92d1c.png 3 show variables like ‘collation_%’;查看比较规则(数据的比较相关) https://i-blog.csdnimg.cn/direct/b70da154a4f8467ab7959ad88b7266b1.png

1.2 字符集修改

1 找到 MySQL的数据存储下的 my.ini 文件,添加下面的内容 [mysqld] # 大概在63行左右,在其下添加 … default-character-set=utf8 #默认字符集 [mysqld] # 大概在76行左右,在其下添加 … character-set-server=utf8 collation-server=utf8_general_ci 注意:建议修改配置文件使用notepad++等高级文本编辑器,使用记事本等软件打开修改后可能会导致文件编码修改为“含BOM头”的编码,从而服务重启失败。

2 重启 MySQL 服务 通过“服务”中找到MySQL服务进行重新启动: https://i-blog.csdnimg.cn/direct/bc41e503d1bc435c9800b06d88f96e0f.png 3 重新启动服务后,查看编码命令 show variables like ‘character_%’; show variables like ‘collation_%’; 4 此时编码修改成功后,由于之前的数据库依旧使用的是拉丁的编码方式。我们可以删除该数据库后重新创建,即为修改后的字符集。