原因分析:MySQL5.7版本默认设置了 mysql sql_mode = only_full_group_by 属性,导致报错。
解决办法:
1、打开MySQL数据库控制台
执行全局sql语句:
set @@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 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';
如果只修改某一个数据库,请在该数据库下面执行:
sql_mode=
'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,
NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
2、修改MySQL配置文件
Linux下my.cnf或Windows下My.ini
注意在[mysqld]段下添加,直接加到最后一行无效。
添加以下代码:
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服务,MySQL报错消失。
至此,MySQL5.7版本sql_mode=only_full_group_by问题解决。
博客指出MySQL5.7版本默认设置mysql sql_mode = only_full_group_by属性会导致报错。给出两种解决办法,一是在数据库控制台执行全局或特定数据库的sql语句修改;二是修改MySQL配置文件,在[mysqld]段下添加相应代码,重启服务后报错消失。
971

被折叠的 条评论
为什么被折叠?



