错误原因:
由于我的MySQL版本为8.0.17,在5.7版本之后,配置中sql_mode中默认存在ONLY_FULL_GROUP_BY,由此SQL语句未通过ONLY_FULL_GROUP_BY语义检查所以报错。
解决方法:
我先在网上找了很多办法,但是我发现和我的情况都不大一样,他们有的文件我都没有。最后我发现,其实核心就是由于mysql5.7之后,my.cnf这个配置文件就不在了,所以我们要修改其中的配置,就可以自己在/etc目录下创建一个my.cnf,来修改sql_mode。
- 首先先在mysql中运行select @@sql_mode(或者SELECT @@GLOBAL.sql_mode;),查看自己的配置。
- 在/etc中新建一个my.cnf,并Vim进入配置
cd /etc
touch my.cnf
vim my.cnf
- `在这里插入代码片
i --进入编辑模式
输入以下内容:
> [mysqld]
> sql-mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
> [mysqld]
> sql-mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
- 重启Mysql