MySQL 如何在 my.cnf 文件中设置 sql-mode=”NO_ENGINE_SUBSTITUTION” 使其永久生效?
阅读更多:MySQL 教程
背景概述
MySQL 是世界上最流行的开源关系型数据库管理系统之一。当我们在 MySQL 中运行查询时,会自动启用一组严格的 SQL 约束,称为 SQL mode。其中一个 SQL mode 选项是 NO_ENGINE_SUBSTITUTION,它用于防止在表引擎不可用时 MySQL 自动替换的情况。
在 MySQL 中永久设置 NO_ENGINE_SUBSTITUTION 会使其在重启 MySQL 服务时生效,而不需要手动设置。
修改 my.cnf 文件
要在 MySQL 中永久设置 NO_ENGINE_SUBSTITUTION,我们需要修改 MySQL 的配置文件 my.cnf,在该文件中添加一行代码:
sql-mode="NO_ENGINE_SUBSTITUTION"
在 Linux 系统中,my.cnf 文件通常位于 /etc/mysql/ 目录下。您可以使用 vi 或其他编辑器打开 my.cnf 文件并添加上述代码,例如
sudo vi /etc/mysql/my.cnf
测试更改
完成上述更改后,需要重新启动 MySQL 服务以使更改生效。您可以使用以下命令:
sudo systemctl restart mysql.service
您还可以使用以下命令检查 MySQL 的 SQL mode 设置是否已更新:
mysql> SHOW VARIABLES LIKE 'sql_mode';
如果您看到 NO_ENGINE_SUBSTITUTION 出现在变量列表中,则说明您的更改已成功生效。
总结
在 MySQL 中永久设置 SQL mode 约束选项,可以通过修改 MySQL 的配置文件 my.cnf 实现。将 sql-mode="NO_ENGINE_SUBSTITUTION" 添加到 my.cnf 文件的末尾即可,然后重新启动 MySQL 服务以使更改生效。在 MySQL 重启后,所有的查询都将自动使用您设置的 SQL mode 约束选项。
极客教程