一些 内容 Typo、Contao、Contenido等管理系统都存在自的问题。 MySQL 5.1可用严格模式。这是自5.7版本以来的默认设置。
所以说,也可以使用这些CMS系统,在服务器端仍然可以关闭严格模式。当然,这只是有条件的推荐。
严格模式的作用是什么?
MySQL/MariaDB的严格模式控制了在数据更改查询中如何处理无效或缺失的值,包括INSERT、UPDATE和CREATE声明。
无效或缺失 数据 导致SQL查询执行时出现警告或错误。如果关闭Scrict模式,则会调整无效查询或缺失值,并发出简单的警告。这可能会导致意想不到的结果。
一个例子就是字符限制。如果关闭严格模式,多余的字符会被剪掉,使其适合。
为什么只有一些CMS系统才会出现这种情况?
只能猜测。可能是代码太多,没有人能够弄明白。关于 内容管理系统 工作的人很多,有时他们带来的个别功能,然后多年来不再看。只要不出现严重的问题就不会太差。
像whmcs这样的系统,也会受到影响,情况就完全不同了。如果重要数据被截断,就会出现错误的分配。这在结算时可能会出现问题。
这些说明可以应用在哪里?
该说明指的是Linux系统中的MySQL 5.6/5.7或。 MariaDB 10.1 和更高的,如果严格模式是活动的。
需要root权限才能进行更改。我们的说明总是提到 Centos Linux.在其他发行版中,配置文件可能位于其他目录中。
步骤1:创建备份
编辑文件时,一定要做好备份。无意中删除一些东西太容易了。
cp -a /etc/my.cnf{,.strict.bak}。
该命令从同一目录下的my.cnf中创建一个my.cnf.strict.bak文件。
第二步:禁用MySQL严格模式
文件中通常不包含sql_mode=...,所以应该在这一节中添加以下行数。 [mysqld] :
sql_mode=""
步骤3:重新启动MySQL服务
编辑文件后,必须重新启动服务才能应用更改。
systemctl restart mariadb
服务重启后,您可以通过执行以下命令检查设置。这里以密码为例 Plesk服务器.或者用root和密码。
mysql -uadmin -p`cat /etc/psa/.psa.shadow` -e "SELECT @@sql_mode;"
然后应出现以下返回。
+————+
|@sql_mode
+————+
| |
+————+