一、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. 此时编码修改成功后,由于之前的数据库依旧使用的是拉丁的编码方式。我们可以删除该数据库后重新创建,即为修改后的字符集。