MySQL 5.7.5以后默认开启了sql_mode的ONLY_FULL_GROUP_BY
我使用了mysql:5.7.15作为mysql容器的镜像,
所以之前写的一些,本来是好的,带group的sql出现了一些问题。
登录mysql
前提是你要安装mysql-client哦,
mysql -h 127.0.0.1 -P 3308 -u root -p xxxxx
查看当前sql
mysql> select @@sql_mode;
显示:
mysql> select @@sql_mode;
+-------------------------------------------------------------------------------------------------------------------------------------------+
| @@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 |
+-------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
进入mysql容器命令行
docker exec -it <Docker容器 ID或Name> /bin/bash
修改sql_mode
mysql:5.7.15容器中mysqld的配置文件是放在:/etc/mysql/mysql.conf.d/mysqld.cnf,把去掉ONLY_FULL_GROUP_BY
的sql_mode追加到此配置中
echo "sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION">>/etc/mysql/mysql.conf.d/mysqld.cnf
重启mysql容器
docker restart <Docker容器 ID或Name>