mysql规则配置:
查询当前配置:SELECT @@SESSION.sql_mode;
sql_mode常用值说明:sql_mode常用值
mysql5.7之后默认为:ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
其中ONLY_FULL_GROUP_BY为==》对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中。
如果要修改规则可前往配置文件(
1、找到配置文件位置 find / -name “*.cnf”
2、vim my.cnf)然后设置(内容设置可按自己需求定,sql_mode常用值)
sql_mode=‘STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION’,如果没有vim命令,先安装vim命令1、apt-get update 2、apt-get install vim
如下所示
重启数据库 service mysql restart
注意三点:
1、需要设置在[mysqld]下面
2、全局ONLY_FULL_GROUP_BY需要去掉,如sql_mode=‘STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION’
3、my.cnf文件的权限为644,chmod 644 my.cnf