mysql5.7.5版本的sql_mode=only_full_group_by问题

mysql5.7.5版本默认设置了sql_mode=only_full_group_by,造成了之前使用的sql语句有些会出现sql_mode=only_full_group_by错误,接下来为解决此类问题的方法。

1. sql解决(但是不是永久的)

  1. 查看sql_mode(select @@sql_mode
  2. 去掉ONLY_FULL_GROUP_BY,重新设置值。(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';

  3. 对于已存在的数据库,则需要在对应的数据下执行(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';

2.  修改my.cnf文件(永久)

  1. 找到mysql的my.cnf文件,linux中找到/etc/my.cnf
  2. 找到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
  3. 如果没有在最下方添上(
    sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
posted @ 2019-12-30 14:39  余生大大  阅读(15)  评论(0编辑  收藏  举报