如何查找和禁用MySQL严格模式?

时间:2016-06-22 09:45:47

标签: mysql cpanel whmcs strict-mode

大家好我想为whmcs找到这个mysql严格模式并禁用它但我没有进展 如果我没有提及其他事情,那我就是新手了 谁能帮我? 我正在研究WHM / Cpanel

6 个答案:

答案 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。这是全局禁用它的方式:

打开SSH /控制台并验证当前模式:

# 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 |
+--------------------------------------------+

完成:)

答案 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';"