如何禁用 MySQL 严格模式

在本教程中,我们将向您展示如何在您的 CentOS 7 服务器上禁用 MySQL 严格模式。 对于那些不知道的人,严格模式控制 MySQL 如何处理数据更改语句(如 INSERT 或 UPDATE)中的无效或缺失值。 一个值可能由于多种原因而无效。

本文假设您至少具备 Linux 的基本知识,知道如何使用 shell,最重要的是,您将网站托管在自己的 VPS 上。 安装非常简单,假设您在 root 帐户下运行,如果不是,您可能需要添加 ‘sudo‘ 到命令以获取 root 权限。 我将向您展示逐步关闭或禁用 CentOS 7 服务器上的 MySQL 严格模式。

先决条件

  • 运行以下操作系统之一的服务器:CentOS Linux。
  • 建议您使用全新的操作系统安装来防止任何潜在问题。
  • 一种 non-root sudo user或访问 root user. 我们建议充当 non-root sudo user,但是,如果您在充当 root 时不小心,可能会损害您的系统。

禁用 MySQL 严格模式

步骤 1. 首先,让我们开始备份 MySQL conf。

这样可以确保您在出现问题时有办法恢复更改,cp -a /usr/my.cnf{,.strict.bak}
cp -a /etc/my.cnf{,.strict.bak} 这也是有益的,因为它有助于跟踪何时以及进行了哪些更改:

cp -a /usr/my.cnf{,.strict.bak}
cp -a /etc/my.cnf{,.strict.bak}

步骤 2. 编辑 MySQL 配置文件。

使用您喜欢的命令行编辑器打开文件。 在此示例中,我们使用“纳米”:

nano /etc/my.cnf

找到以下几行:

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

如果您发现与上面类似的行设置了 `sql_mode` 变量,那么您需要将其替换为以下行以禁用 MySQL 严格模式:

sql_mode=""

最后,使用以下命令重新启动 MySQL:

systemctl restart mysql

步骤 3. 确认严格 SQL 模式已禁用。

要验证该过程是否正确完成,您可以运行以下命令:

mysql -e "SELECT @@sql_mode;"

输出可能类似于以下内容:

+--------------------------------------------+
| @@sql_mode
+--------------------------------------------+
| NO_AUTO_CREATE_USER
+--------------------------------------------+

恭喜! 您已成功禁用 MySQL 严格模式。 感谢您使用本教程在 CentOS 7 系统上关闭或禁用 MySQL 严格模式。 如需更多帮助或有用信息,我们建议您查看 官方 MySQL网站。

Save

Save