报错原因
1.mysql 5.7中的sql_mode的值为:
2.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
查看
#登录你的数据库
mysql -uroot -p
#执行下面的命令
SELECT @@sql_mode;
#看到的结果
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
方案一:(亲测有效,需要重启mysql服务)
修改mysql的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"
centos7 mysql的配置文件修改 ,如下图,并保存
vim /etc/my.cnf
方案二:(我的没有成功)
#登录你的数据库
mysql -uroot -p
#执行下面的命令
SELECT @@sql_mode;
#看到的结果
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
# 重新设置sql_mode的值
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 ';