【发布时间】:2016-10-24 04:14:25
【问题描述】:
大家好,我想为 whmcs 找到这个 mysql 严格模式并禁用它,但我没有进展 我是新手,如果我不提其他事情,那就不好意思了 谁能帮我? 我正在开发 WHM/Cpanel
【问题讨论】:
标签: mysql cpanel whmcs strict-mode
大家好,我想为 whmcs 找到这个 mysql 严格模式并禁用它,但我没有进展 我是新手,如果我不提其他事情,那就不好意思了 谁能帮我? 我正在开发 WHM/Cpanel
【问题讨论】:
标签: mysql cpanel whmcs strict-mode
我认为在最近的版本中更改 *.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';"
【讨论】:
我目前使用 MariaDB 和多 cpanel 配置运行 Centos 6.9 服务器,因此对于客户端,他们无法自行禁用严格,而不会出现缺少权限错误。这是您全局禁用它的方式:
# mysql -e "SELECT @@sql_mode;"
+----------------------------------------------------------------------+
| @@sql_mode |
+----------------------------------------------------------------------+
|STRICT_TRANS_TABLES, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, |
|NO_ENGINE_SUBSTITUTION |
+----------------------------------------------------------------------+
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
/etc/init.d/mysql restart
# mysql -e "SELECT @@sql_mode;"
+--------------------------------------------+
| @@sql_mode |
+--------------------------------------------+
| NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+--------------------------------------------+
完成:)
【讨论】:
从 cpanel 关闭(或打开)mysql 严格访问。
1、搜索“phpmyadmin”,在搜索框中点击
2,一旦加载了 phpmyadmin,点击“变量”选项卡
3、搜索“sql模式”
然后
进入时开启严格模式
STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
要关闭严格模式,请输入
NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
如果您可以控制要使用的脚本,那么最好打开严格模式,它会在代码中的任何错误成为问题之前提醒您。
【讨论】:
sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 放入 /etc/my.cnf 文件中作为这个答案:stackoverflow.com/a/47416442/1407491
打开my-default.ini 文件并从sql_mode 值中删除STRICT_TRANS_TABLES 参数。
[例如:在 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 中的严格模式
【讨论】:
my-default.ini 或以.ini 结尾的不同文件。在MYSQL安装目录中
首先,要禁用 MySQL 严格模式,您需要服务器的 root 访问权限。如果你没有它,你就做不到。如果您只有 cPanel 访问权限,这意味着您不是此服务器的管理员,或者您没有 root 访问权限。
要编辑你的 mysql 配置文件 my.cnf,你必须通过 SSH(使用 root 用户或 sudo 访问)访问你的服务器,然后编辑 /etc/my.cnf 文件并添加以下行(如果它不存在):
[mysqld]
sql_mode="TRADITIONAL,NO_AUTO_CREATE_USER"
编辑此文件后,保存并重启mysql服务。同样,您需要对您的服务器具有完全的 root 访问权限才能更改此设置。
【讨论】: