云数据库 MySQL 已在官方的默认值基础上进行了优化,但基于客户不同的业务场景,在购买实例后,建议根据您的业务场景对如下参数进行合理的配置:
默认值:
NO_ENGINE_SUBSTITUTION(5.6版本),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(5.7版本)
是否需要重启:否
作用:MySQL 可以运行在不同 sql 模式,sql 模式定义了 mysql 应该支持的 sql 语法、数据校验等。
5.6版本的默认参数值为NO_ENGINE_SUBSTITUTION
,表示使用的存储引擎被禁用或未编译则抛出错误。
5.7、8.0版本的默认参数值为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
。
其中:
ONLY_FULL_GROUP_BY
表示在 GROUP BY 聚合操作时,如果在 SELECT 中的列、HAVING 或者 ORDER BY 子句的列,必须是 GROUP BY 中出现或者依赖于 GROUP BY 列的函数列。STRICT_TRANS_TABLES
为启用严格模式;NO_ZERO_IN_DATE 是否允许日期中的月份和日包含 0,且受是否开启严格模式的影响。NO_ZERO_DATE
数据库不允许插入零日期,且受是否开启严格模式的影响。ERROR_FOR_DIVISION_BY_ZERO
在严格模式下,INSERT 或 UPDATE 过程中,如果数据被零除,则产生错误而非警告,而非严格模式下,数据被零除时 MySQL 返回 NULL。NO_AUTO_CREATE_USER
禁止 GRANT 创建密码为空的用户。NO_ENGINE_SUBSTITUTION
使用的存储引擎被禁用或者未编译则抛出错误。建议:由于不同的 SQL 模式支持不同的 SQL 语法,建议根据您的业务场景及开发习惯进行合理的配置。
本页内容是否解决了您的问题?