13

大家好,我想为 whmcs 找到这个 mysql 严格模式并禁用它,但我没有进展我是一个新手,如果我没有提到其他事情,那么很抱歉有人可以帮助我吗?我正在研究 WHM/Cpanel

4

6 回答 6

17

从 cpanel 关闭(或打开)mysql 严格访问。

1、搜索“phpmyadmin”,在搜索框中点击

2,一旦加载了phpmyadmin,点击“变量”选项卡

3、搜索'sql模式'

然后

在进入时打开严格模式

STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION

要关闭严格模式,请输入

NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

如果您可以控制要使用的脚本,那么最好打开严格模式,它会在代码中的任何错误成为问题之前提醒您。

于 2017-03-11T22:27:35.863 回答
11

我目前使用 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 |
+--------------------------------------------+

完毕 :)

于 2017-11-21T15:14:29.530 回答
2

首先,要禁用 MySQL 严格模式,您需要服务器的 root 访问权限。如果你没有它,你就做不到。如果您只有 cPanel 访问权限,这意味着您不是此服务器的管理员,或者您没有 root 访问权限。

要编辑您的 mysql 配置文件 my.cnf,您必须通过 SSH(使用 root 用户或 sudo 访问)访问您的服务器,然后编辑 /etc/my.cnf 文件并添加以下行(如果不存在):

[mysqld]

sql_mode="传统,NO_AUTO_CREATE_USER"

编辑完这个文件,保存并重启mysql服务。同样,您需要对服务器进行完全 root 访问才能更改此设置。

于 2016-06-29T12:54:01.113 回答
1

我认为在最近的版本中更改 *.cnf 文件是不可能的,你可以更改 mysql.service 文件

/lib/systemd/system/mysql.service
ExecStart=/usr/sbin/mysqld --sql-mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
于 2021-04-10T19:15:30.410 回答
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';"
于 2020-10-28T07:14:12.320 回答
0

打开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 中的严格模式

于 2016-06-22T09:50:08.690 回答