问题
出现中文乱码一般是有三处的编码不统一:
- mysql 客户端character_set_client
- 与程序的链接处character_set_connection
- mysql 的服务端character_set_server
具体怎么查看这三处的编码可以在 mysql 的 cmd 中执行下面这条命令:
show variables like 'character%';
解决办法
解决过程大致分为五步。
1. 找到 my.ini
在 MySQL 的安装目录下找到 my.ini(MySQL 配置文件)
2. 用文本编辑工具打开 my.ini
推荐使用 notepad++ 打开,不要使用 window 自带的记事本。
3. 复制粘贴
3.1 把 basedir 、datadir 复制粘贴到一个文件里先保存起来
把下面图片中我框住的那个先复制粘贴到别的地方保存起来,因为后面我们需要用到。
3.2 把你的 my.ini 文件里的内容全部删除。 就像我下面这样。
3.3 把我下面这些配置信息先复制一下,然后粘贴到 my.ini 里。
!!!注意:这里 basedir 、datadir 需要修改为你刚才保存的那个,其他的不需要改动
[client]
port=3306
[mysql]
default-character-set=utf8
[mysqld]
# The TCP/IP Port the MySQL Server will listen on
port=3306
#Path to installation directory. All paths are usually resolved relative to this.
basedir=C:\Program Files\mysql\mysql-5_6_45-winx64
#Path to the database root
datadir=C:\Program Files\mysql\mysql-5_6_45-winx64\data
# The default character set that will be used when a new schema or table is
# created and no character set is defined
character-set-server=utf8
复制粘贴后的效果如下:
4. 重启 mysql
停止 mysql:在 window 系统的 cmd 中输入
net stop mysql;
启动 mysql:在 window 系统的 cmd 中输入
net start mysql;
windows 下不能直接重启 (restart),只能先停止,再启动。
5. 查看字符集是否修改成功
在 mysql 的 cmd 中执行下面这条命令:
show variables like 'character%';
mysql 客户端 character_set_client、与程序的链接处character_set_connection、mysql 的服务端 character_set_server 这三处的字符集均为 utf8 说明字符集修改成功,mysql 数据库就不会有中文乱码的问题了。