指尖上的记忆指尖上的记忆
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub

mysql8解决分组报only_full_group_by的问题:

mysql8下执行group操作,会报下面的错误,5.7以上都会,只是sql_mode的参数略有不同,具体看下面的注释
Error 1055: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'age-club-db.d_inner_products.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

先执行:
select @@sql_mode;

输出:
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

删除ONLY_FULL_GROUP_BY:
STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION //注意 mysql8 是没有 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 参数的,所以只用把 ONLY_FULL_GROUP_BY 去掉,剩下的就可以了,否则重启以后报错

vagrant@homestead:~$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

在 [mysqld]最后添加下面的配置,然后重启:
sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

vagrant@homestead:~$ sudo service mysql restart //重启

vagrant@homestead:~$ service mysql status //查看结果

--返回--