高版本数据报这样一个错 sql_mode=only_full_group_by mysql 5.7按下面解决
这样一条命令
SELECT t2.id,t2.typeName,COUNT(t1.id) AS blogCount FROM t_blog t1 RIGHT JOIN t_blogtype t2 ON t1.typeId=t2.id GROUP BY t2.typeName ORDER BY t2.orderNo;
报下面的错
sql_mode=only_full_group_by
如何解决
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';
每次重启 服务器都要进行这样的操作。(我电脑是5.1 服务器是5.7)
看看如何 规避?
暂时没有找到方法
执行完sql后需要 重启项目重启tomcat 或者 docker
上面的语句 有可能不起作用。 使用下面的 一条一条执行
set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
执行完之后,
关闭项目 --启动项目。即可正常。
重启服务器,
实验室系统。我的博客。天康项目
执行上面2行sql
重启tomcat 即可 或者 重启docker
修改MySQL配置文件(my.cnf或my.ini ) 修改/etc/my.cnf配置文件 ,在[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
查询当前模式
SELECT @@GLOBAL.sql_mode; SHOW VARIABLES LIKE 'sql_mode';
查询当前模式结果如下: 这是不会报错的 sql_mode
STRICT TRANS TABLES,NO AUTO CREATE USER, NO ENGINE SUBSTITUTION(我电脑mysql)
STRICT TRANS TABLES,NO ZERO IN DATE,NO ZERO DATE,ERROR FOR DIVISION BY ZERO,NO ENGINE SUBSTITUTION(服务器mysql)
重启服务器 输出sql mode 用的不是docker mysql 自己安装的mysql5.7
执行完那2个命令之后是这样
站长微信:xiaomao0055
站长QQ:14496453