逐梦DBAMySQL的编码设置
目录
逐梦DBA:MySQL的编码设置
一、MySQL的编码设置
1.1 默认插入中文数据存在的问题
1.1.1 在 MySQL5.7 版本,默认在安装成功后存在中文乱码的问题
1 通过 show create table xxx查看可以发现默认的字符集:
2 show variables like ‘character_%’;查看编码命令发现默认为拉丁
如果我们没有显示指定库或表使用的字符集,则使用默认的字符集
3 show variables like ‘collation_%’;查看比较规则(数据的比较相关)
1.1.2 在 MySQL8.0版本中,则不存在字符串SQL乱码问题
MySQL 8.0 开始,数据库的默认编码改为utf8mb4 ,从而避免了上述的乱码问题。
1 我们依旧通过 show create table xxx查看可以发现默认的字符集:
2 show variables like ‘character_%’;查看编码命令发现默认为UTF8格式
3 show variables like ‘collation_%’;查看比较规则(数据的比较相关)
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服务进行重新启动:
3 重新启动服务后,查看编码命令
show variables like ‘character_%’;
show variables like ‘collation_%’;
4 此时编码修改成功后,由于之前的数据库依旧使用的是拉丁的编码方式。我们可以删除该数据库后重新创建,即为修改后的字符集。