1、mysql5.7修改my.ini文件后mysql无法启动
以管理员的身份运行cmd,将目录切换至mysql安装目录的bin目录下
1、输入命令: net start mysql
在长时间的等待后,提示mysql服务器无法启动,见图1
图1
2、输入命令:mysqld.exe – console
提示报错,说my.ini配置文件有问题,报错信息见图2
图2
3、原因及解决办法
原因:my.ini文件在更改后编码被保存为UTF-8格式了
解决办法:将my.ini文件另存为,另存为的时候选择编码格式为ANSI
2、关闭only_full_group_by
1、方法一(该方法在服务重启后将失效,须重新配置才能重新生效)
先启动并连接数据库,然后执行下面两个语句
set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
然后重启项目(缺点是mysql服务重启后该配置将失效,须重新配置才能生效)
下面这个语句可以查看sql_mode有那些值
select @@sql_mode
2、方法二(这个方法在重启服务后也会生效)
windows系统下,修改my.ini,在[mysqld] 下面添加下面代码(注意my.ini保存的编码格式为ANSI)
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
如图