Mysql全局级别修改SQL模式的详细教程

1. 问题描述

Cause: java.sql.SQLSyntaxErrorException: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'btc-cloud.t1.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by\n; bad SQL grammar []; nested exce

2. 开发环境

  • Ubuntu22 环境
  • Mysql8.0

3. 解决方法(详细步骤)

  1. 打开终端。
  2. 使用文本编辑器编辑MySQL的配置文件。您可以使用nano、vim或其他您喜欢的文本编辑器。以下是使用nano编辑器的示例命令:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

如果您使用的是vim,可以使用以下命令:

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
  1. 在配置文件中找到[mysqld]部分。如果文件中没有这一部分,您需要手动添加它。
  2. 在[mysqld]部分下方添加以下行,以禁用ONLY_FULL_GROUP_BY模式:
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

请注意,这行配置将ONLY_FULL_GROUP_BY模式从SQL模式中移除。确保只添加一个sql_mode行,如果文件中已经有一个sql_mode行,请相应地修改它。

  1. 保存并关闭文件。如果您使用的是nano,可以按Ctrl + O来保存文件,然后按Enter确认文件名,最后按Ctrl + X退出。如果您使用的是vim,可以按Esc键进入正常模式,然后输入:wq并按Enter保存并退出。
  2. 重启MySQL服务以应用更改:
sudo systemctl restart mysql.service

或者使用旧版的初始化系统(如果您的系统还在使用它):

sudo systemctl restart mysql
  1. 验证更改。您可以通过执行以下命令来检查SQL模式是否已更新:
sudo mysql -u root -p -e "SHOW VARIABLES LIKE 'sql_mode';"

输入MySQL的root密码后,您应该看到sql_mode的值不再包含ONLY_FULL_GROUP_BY。

亲测好使!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值