mysql永久去除only_full_group_by的方法
时间: 2023-07-22 14:09:26 浏览: 176
你可以通过修改 MySQL 的配置文件来永久去除 `ONLY_FULL_GROUP_BY` 的严格模式。以下是具体的步骤:
1. 打开 MySQL 的配置文件,通常位于 `/etc/mysql/my.cnf` 或者 `/etc/my.cnf`。
2. 找到 `[mysqld]` 部分,在该部分下添加或修改以下行:
```
[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
```
3. 保存并关闭配置文件。
4. 重启 MySQL 服务器,使更改生效。可以使用以下命令:
```
sudo service mysql restart
```
在完成上述步骤后,MySQL 将不再使用 `ONLY_FULL_GROUP_BY` 的严格模式。请注意,这种修改可能会影响其他 SQL 查询的行为,因此请确保在做出更改之前了解其潜在影响。
相关问题
mysql 8.0 添加only_full_group_by
在MySQL 8.0版本中,要添加only_full_group_by属性,可以通过以下方法实现:
1. 通过命令解决:可以使用以下命令在当前会话中设置only_full_group_by属性:
```
SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
```
这将从当前会话中移除only_full_group_by属性,但在MySQL重新启动后会失效。
2. 修改配置文件:可以通过修改MySQL的配置文件来永久地设置only_full_group_by属性。打开my.cnf(或my.ini)配置文件,在[mysqld]节下添加如下行:
```
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
```
保存文件后,重新启动MySQL服务使更改生效。
请注意,以上方法仅适用于MySQL 8.0版本。希望对你有所帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
怎么知道MySQL是否开启only_full_group_by
可以通过以下方法来检查MySQL是否开启了only_full_group_by:
1. 登录MySQL命令行界面。
2. 执行以下命令:
```
SHOW VARIABLES LIKE 'sql_mode';
```
3. 查看结果中的sql_mode参数值是否包含only_full_group_by。如果包含,则表示MySQL开启了only_full_group_by。如果不包含,则表示MySQL未开启only_full_group_by。
另外,也可以通过修改MySQL的配置文件来开启或关闭only_full_group_by。具体方法如下:
1. 打开MySQL的配置文件,一般为/etc/my.cnf或/etc/mysql/my.cnf。
2. 在[mysqld]标签中添加以下行:
```
sql_mode=ONLY_FULL_GROUP_BY
```
3. 保存文件并重启MySQL服务。
4. 再次执行以上命令,查看结果中的sql_mode参数值是否包含only_full_group_by。如果包含,则表示MySQL开启了only_full_group_by。如果不包含,则表示MySQL未开启only_full_group_by。