mysql5.7.5版本的sql_mode=only_full_group_by问题

2022-10-25 14:28:18 浏览数 (2)

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 )

0 人点赞