mysql my.ini设置SQL_MODE
时间: 2024-06-22 11:03:53 浏览: 200
关于MySQL的sql_mode合理设置详解
MySQL的my.ini配置文件是用来设置MySQL服务器的一些全局参数,其中包括`sql_mode`选项,它控制了MySQL的行为模式,特别是对于一些SQL标准的兼容性和默认行为。`sql_mode`设置可以帮助确保数据的一致性和防止潜在的不安全操作。
`sql_mode`通常包含一组预定义的模式,如`STRICT_ALL_TABLES`、`NO_ENGINE_SUBSTITUTION`等,你可以单独启用或禁用这些模式,或者自定义一个模式组合。常见的设置可能包括:
1. `STRICT_ALL_TABLES`:开启严格模式,强制执行所有表级别的规则,如不允许NULL值插入NOT NULL列等。
2. `NO_ENGINE_SUBSTITUTION`:禁止MySQL在查询时自动选择存储引擎,确保使用指定的存储引擎。
3. `TRADITIONAL`:传统模式,遵循旧版本的MySQL行为,可能会影响某些SQL的处理。
4. `ERROR_FOR_DIVISION_BY_ZERO`:启用除以零错误,而不是返回NULL。
5. `ONLY_FULL_GROUP_BY`:确保每个GROUP BY字段都包含在SELECT列表中。
要设置`sql_mode`,在my.ini文件中添加类似这样的行:
```ini
[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"
```
然后重启MySQL服务以应用更改。
阅读全文