大家好我想为whmcs找到这个mysql严格模式并禁用它但我没有进展 如果我没有提及其他事情,那我就是新手了 谁能帮我? 我正在研究WHM / Cpanel
答案 0 :(得分:9)
关闭(或打开)来自cpanel的mysql严格访问。
1,搜索'phpmyadmin',在搜索框中点击它
2,加载phpmyadmin后,点击“变量”标签
3,搜索'sql mode'
然后
输入严格模式
STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
关闭严格模式,输入
NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
如果您可以控制您将使用的脚本,那么最好保持严格模式,它会在您的代码成为问题之前提醒您代码中的任何错误。
答案 1 :(得分:5)
我目前使用MariaDB和多cpanel配置运行Centos 6.9服务器,因此对于客户端,他们无法在没有权限错误的情况下自行禁用strict。这是全局禁用它的方式:
# 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 |
+--------------------------------------------+
完成:)
答案 2 :(得分:1)
首先,要禁用MySQL严格模式,您需要服务器的root访问权限。如果你没有它,你就做不到。如果您只有cPanel访问权限,则表示您不是此服务器的管理员,或者您没有root访问权限。
要编辑mysql配置文件my.cnf,您必须通过SSH访问服务器(使用root用户或sudo访问),然后编辑/etc/my.cnf文件并添加以下行(如果不存在):
的[mysqld]
的sql_mode = “传统的NO_AUTO_CREATE_USER”
编辑此文件后,保存并重新启动mysql服务。同样,您需要服务器的完全root权限才能更改此权限。
答案 3 :(得分:1)
我认为在最新版本中不可能更改 *.cnf 文件 相反,您可以更改 mysql.service 文件
/lib/systemd/system/mysql.service
ExecStart=/usr/sbin/mysqld --sql-mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
答案 4 :(得分:0)
打开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中的严格模式
答案 5 :(得分:0)
首先,使用以下命令验证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';"