之前我用brew安装了一个mysql,最近导入数据时报错,想要修改mysql的配置文件 my.cnf,但是无论怎么修改都不成功,通过查找资料,原来需要做以下操作才可以。
业务场景
在mac环境下,由于通过SQL查询,使用到了group by,而且by多个字段。例如:select a,b,c from table group by a,b 。发现执行SQL报错了。
Expression #5 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'table.a'
which is not functionally dependent on columns in GROUP BY clause;
解决方法
一、命令行方式
1、进入命令行执行以下命令
查看sql_mode
select @@sql_mode\G
发现配置是“ONLY_FULL_GROUP_BY“,修改配置。
2、修改sql_mode配置
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';
但是上面的解决方法是临时的,当下次重启后就失效了,想要一直有效,需要将配置写到配置文件
二、修改my.cnf配置
1、查找my.cnf
cd /etc
发现配置文件不存在
2、新建配置
进入/ect新建my.cnf
然后在[mysqld]栏下追加如下
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
3、保存、赋予权限
注意点,这个时候不能赋予太高的权限,如果权限太高,mysql认为不安全,就会发生如下提示:
Warning: World-writable config file '/etc/my.cnf' is ignored
则需要重新赋予权限即可
chmod 644 /etc/my.cnf
4、重启mysql服务
重启命令均在 /usr/local/Cellar/mysql/8.0.25_1/support-files 目录下
sudo /usr/local/Cellar/mysql/8.0.25_1/support-files/mysql.server restart
也可以用 brew service start mysql
这样就可以啦
扫码或搜索:PHP学习网 微信公众号
发送 T
刷新页面 即可 立即解锁 本站全部文章