大家好,我想为 whmcs 找到这个 mysql 严格模式并禁用它,但我没有进展我是一个新手,如果我没有提到其他事情,那么很抱歉有人可以帮助我吗?我正在研究 WHM/Cpanel
6 回答
从 cpanel 关闭(或打开)mysql 严格访问。
1、搜索“phpmyadmin”,在搜索框中点击
2,一旦加载了phpmyadmin,点击“变量”选项卡
3、搜索'sql模式'
然后
在进入时打开严格模式
STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
要关闭严格模式,请输入
NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
如果您可以控制要使用的脚本,那么最好打开严格模式,它会在代码中的任何错误成为问题之前提醒您。
我目前使用 MariaDB 和多 cpanel 配置运行 Centos 6.9 服务器,因此对于客户端,他们无法自行禁用严格,而不会出现缺少权限错误。这是您全局禁用它的方式:
打开 SSH/Console 并验证当前模式:
# mysql -e "SELECT @@sql_mode;"
+----------------------------------------------------------------------+
| @@sql_mode |
+----------------------------------------------------------------------+
|STRICT_TRANS_TABLES, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, |
|NO_ENGINE_SUBSTITUTION |
+----------------------------------------------------------------------+
找到并编辑“my.cnf”文件
vim /etc/my.cnf
查找并更改以下内容或添加该行(如果不存在)
启用严格模式:
sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
严格模式禁用:
sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
重启 MySQL 服务
/etc/init.d/mysql restart
验证严格模式已被禁用:
# mysql -e "SELECT @@sql_mode;"
+--------------------------------------------+
| @@sql_mode |
+--------------------------------------------+
| NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+--------------------------------------------+
完毕 :)
首先,要禁用 MySQL 严格模式,您需要服务器的 root 访问权限。如果你没有它,你就做不到。如果您只有 cPanel 访问权限,这意味着您不是此服务器的管理员,或者您没有 root 访问权限。
要编辑您的 mysql 配置文件 my.cnf,您必须通过 SSH(使用 root 用户或 sudo 访问)访问您的服务器,然后编辑 /etc/my.cnf 文件并添加以下行(如果不存在):
[mysqld]
sql_mode="传统,NO_AUTO_CREATE_USER"
编辑完这个文件,保存并重启mysql服务。同样,您需要对服务器进行完全 root 访问才能更改此设置。
我认为在最近的版本中更改 *.cnf 文件是不可能的,你可以更改 mysql.service 文件
/lib/systemd/system/mysql.service
ExecStart=/usr/sbin/mysqld --sql-mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
首先,使用以下命令验证 MYSQL 正在运行的模式:
mysql -u root -p -e "SHOW VARIABLES LIKE 'sql_mode';"
您需要将 root 替换为在您的服务器上具有超级用户权限的任何用户名(但通常只是 root)。系统还会提示您输入密码。
通过 SQL 命令行禁用严格模式:
您可以通过在命令行上运行以下命令来禁用 MySQL 服务器上的严格模式:
mysql -u root -p -e "SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION';"
打开my-default.ini
文件并STRICT_TRANS_TABLES
从 sql_mode 值中删除参数。
[例如:在 localhost xampp 中,文件位于 xampp/mysql/my-default.ini]
sql_mode 的默认值如下
sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
将其更改为
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
这将禁用 MYSQL 中的严格模式