帮别人解决的问题,记录一下。
问题描述
MySQL的版本是5.7,操作系统是window10。MySQL安装在 C:\Program Files 下。最近需要在MySQL安装目录下的 my-default.ini 配置文件里面加上一个新的配置项:
max_allowed_packet=100M
编辑文件后保存,总是无法保存,提示“拒绝访问”。
后来停止 MySQL 的服务,依然无法保存修改。
再后来把my-default.ini 复制到D盘,修改后保存。删除 C:\Program Files 下原来的配置文件。用管理员身份打开命令行,使用 copy 命令复制到 C:\Program Files 下原来的位置。虽然解决了配置文件无法保存的问题,但是重启 MySQL 服务后,show variables 命令可以看到参数并没有更改过来。
解决方法
1、停止 MySQL 服务。
2、打开文件浏览器。文件 -> 更改文件夹和搜索选项 -> “查看”选项卡 -> 把所有隐藏文件和文件夹的选项都去掉。
3、这时可以看到隐藏文件夹 C:\ProgramData\MySQL\MySQL Server 5.7 。在这个文件夹里面有个 my.ini 配置文件。MySQL 默认读取的是这个配置文件。
4、把 myini 拷贝到其他盘,比如D盘。
5,修改 D:\my.ini 并且保存。注意:max_allowed_packet=100M 应该放到 [mysqld] 这个配置段底下。可以先搜索一下这个参数,如果系统已经有了,直接更改数字即可。
6、以管理员身份删除原来安装目录下的 my.ini 。
7、打开开始菜单,在命令行菜单项上,右键 -> 管理员运行。执行命令:
copy "D:\my.ini" "C:\ProgramData\MySQL\MySQL Server 5.7"
第七,打开 MySQL 服务。
思考
win10 限制只能用管理员权限对文件和文件夹做修改。因此用这个命令行来解决问题。同时MySQL 默认读取 C:\ProgramData\MySQL\MySQL Server 5.7 下的 my.ini 配置文件。