一. 背景
今天在win 10上安装MySQL5.6时因修改字符编码一直采坑,故记录此笔记。
二. 安装
MySQL5.6社区版下载地址: https://dev.mysql.com/downloads/windows/installer/5.6.html
下载安装即可。
下面所说的是默认安装目录,即C:\Program Files\MySQL\MySQL Server 5.6
三. 设置编码
MySQL装完后的默认编码不是utf-8,我们需要自己设置。网上查了很多资料,也试过很多方法,但是配置硬是不生效。
网上大多数说在MySQL安装目录下将my-default.ini复制一份命名为my.ini,然后在这个文件修改编码。虽然character_set_client、
character_set_connection、character_set_results可以修改过来,但是character_set_server却一直改不过来。
后来发现是因为Mysql服务启动时默认加载的配置是C:\ProgramData\MySQL\MySQL Server 5.6\my.ini这个文件。
所以在MySQL的安装目录怎么修改都会无济于事。
所以可以得出结论:
mysql服务(mysqld)默认加载的配置文件是C:\ProgramData\MySQL\MySQL Server 5.6\my.ini
mysql客户端(mysql -u root -p)启动时加载的配置文件(如果存在)是C:\Program Files\MySQL\MySQL Server 5.6\my.ini
具体修改办法(C:\ProgramData\MySQL\MySQL Server 5.6\my.ini文件有介绍):
1. 将文件C:\ProgramData\MySQL\MySQL Server 5.6\my.ini复制一份到MySQL安装目录下
2. 设置[mysql] default-character-set=utf8
3. 设置[mysqld] character-set-server=utf8
4. 删除原来的MySQL服务,重新安装将配置文件改成MySQL安装目录下的my.ini文件
以管理员身份运行cmd(普通身份运行可能会删除失败,权限不够)
sc delete MySQL56(MySQL服务名) #删除旧的Mysql服务
mysqld --install MySQL56 --defaults-file="C:\Program Files\MySQL\MySQL Server 5.6\my.ini"
这样mysql服务端以及mysql客户端都加载的都是安装目录下的my.ini配置文件了。
四. 查看编码
show variables like ‘%character%‘;
原文:https://www.cnblogs.com/wt20/p/9213826.html