问题: MySQL数据库迁移到MySQL5.7版本后,出现如下报错:
原因分析: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问题解决。 (责任编辑:IT) |