2016-11-30 225 views
9

我想知道如何检查MySQL严格模式是否在localhost(xampp)中打开或关闭。如何打开/关闭localhost(xampp)中的MySQL严格模式?

如果然后为什么模式和如何关闭。

如果关闭然后如何。

我已经跟着http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sql-mode-fullhttps://mariadb.com/kb/en/mariadb/sql_mode/等相关网站了。但是我的问题没有得到确切的答案。

+0

如果你想检查严格模式,然后使用:SELECT @@ sql_mode –

+0

此查询返回您的sql_mode并返回空白,如果它关闭 –

+0

检查此类似[https://shopplugin.net/kb/mysql-strict-mode-问题/]将其打开或关闭。 –

回答

21

- >STRICT_TRANS_TABLES负责设置MySQL严格模式。

- >要检查严格的模式是否被启用与否运行下面的SQL:

SHOW VARIABLES LIKE 'sql_mode'; 

如果值之一是STRICT_TRANS_TABLES,则启用了严格模式,否则没有。 在我的情况给

+--------------+------------------------------------------+ 
|Variable_name |Value          | 
+--------------+------------------------------------------+ 
|sql_mode  |STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION| 
+--------------+------------------------------------------+ 

因此严格模式是启用在我的情况下,价值之一是STRICT_TRANS_TABLES

- >要禁用严格模式下运行以下SQL: set global sql_mode=''; [或除STRICT_TRANS_TABLES任何模式。例如:设置全局的sql_mode = 'NO_ENGINE_SUBSTITUTION']

- >要再次使严格模式下运行下面的SQL:

set global sql_mode='STRICT_TRANS_TABLES'; 
+0

如果你重新启动mysql服务器,然后设置再次改变,有没有办法永久改变这个 – DragonFire

+0

你可以在服务器配置文件中做到这一点。例如如何做到这一点的样子: 的[mysqld] 的sql_mode =“STRICT_TRANS_TABLES” 文件的位置取决于您的操作系统而定,更多的在这里找到它:https://dev.mysql.com/doc/refman /5.7/en/option-files.html – solo

+0

我的命令'set global sql_mode ='''不起作用(我的版本是5.7),但是'set sql_mode ='''没有。任何解释? – thelonglqd

8

改变它在Ubuntu永久请执行下列操作

在Ubuntu命令行

sudo nano /etc/mysql/my.cnf 

然后添加以下

[mysqld] 
sql_mode= 
2

首先,检查严格模式是否处于启用状态还是不能在MySQL中使用:

 SHOW VARIABLES LIKE 'sql_mode'; 

如果要禁用它:

 SET sql_mode = ''; 

或任何其他模式可以设置除了以下内容。 启用严格模式:

 SET sql_mode = 'STRICT_TRANS_TABLES'; 

您可以检查第一个mysql查询的结果。