在 MySQL 中设置全局 sql_mode
在 MySQL 中,sql_mode 定义数据库服务器的默认行为。全局设置 sql_mode 将配置的模式应用于所有后续连接和会话。这与为每个会话设置 sql_mode 不同,后者仅影响当前连接。
在全局设置 sql_mode 时遇到错误时,检查语法非常重要。在全局上下文中设置多种模式的正确方法是:
SET GLOBAL sql_mode = 'NO_BACKSLASH_ESCAPES', 'STRICT_TRANS_TABLE', 'NO_AUTO_CREATE_USER', 'NO_ENGINE_SUBSTITUTION'
全局模式和会话模式的优点
全局模式:
会话模式:
首选设置
首选设置取决于应用和环境。如果需要全面一致的行为,建议全局设置 sql_mode。但是,如果出现特定的会话要求,会话模式可以提供必要的灵活性。
永久设置全局 sql_mode
要使全局 sql_mode 更改永久生效,需要在MySQL 配置文件(例如 Linux 上的 /etc/mysql/my.cnf)。在 [mysqld] 部分中,添加或修改 sql_mode 选项。例如:
[mysqld] sql_mode = NO_BACKSLASH_ESCAPES, STRICT_TRANS_TABLES, NO_ENGINE_SUBSTITUTION
对于较新版本的 MySQL(例如 5.7.8 或更高版本),sql_mode 设置可能需要连字符而不是下划线和双引号:
[mysqld] sql-mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"
始终根据所使用的 MySQL 版本查阅 MySQL 文档,了解适当的语法。
以上是如何在 MySQL 中设置和管理全局'sql_mode”?的详细内容。更多信息请关注PHP中文网其他相关文章!