如何在localhost(xampp)中打开/关闭MySQL严格模式?

问题描述 投票:30回答:6

我想知道如何在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/以及其他相关网站。但我没有得到我的问题的确切答案。

mysql
6个回答
61
投票

- > 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';

34
投票

要在ubuntu中永久更改它,请执行以下操作

在ubuntu命令行中

sudo nano /etc/mysql/my.cnf

然后添加以下内容

[mysqld]
sql_mode=

7
投票

首先,使用以下命令检查mysql中是否启用了严格模式:

     SHOW VARIABLES LIKE 'sql_mode';

如果要禁用它:

     SET sql_mode = '';

或以下任何其他模式可以设置。要启用严格模式:

     SET sql_mode = 'STRICT_TRANS_TABLES';

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


1
投票

您可以使用以下方法检查它的本地和全局值:

SELECT @@SQL_MODE, @@GLOBAL.SQL_MODE;

1
投票

检查值

SELECT @@GLOBAL.sql_mode;

然后使用此命令从值中删除'STRICT_TRANS_TABLES':

SET @@GLOBAL.sql_mode=''

0
投票

要在Windows(10)中永久更改它,请编辑my.ini文件。要查找my.ini文件,请查看Windows服务器中的路径。例如。对于我的MySQL 5.7实例,该服务是MYSQL57,在此服务的属性中,可执行文件的路径是:

“C:\ Program Files \ MySQL \ MySQL Server 5.7 \ bin \ mysqld.exe”--defaults-file =“C:\ ProgramData \ MySQL \ MySQL Server 5.7 \ my.ini”MySQL57

即编辑my.ini中的C:\ProgramData\MySQL\MySQL Server 5.7\文件。请注意,C:\ProgramData\是Windows(10)中的隐藏文件夹。我的文件包含以下几行:

# Set the SQL mode to strict
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

从此sql模式行中删除STRICT_TRANS_TABLES,,保存文件并重新启动MYSQL57服务。通过在(新)MySQL命令行客户端窗口中执行SHOW VARIABLES LIKE 'sql_mode';来验证结果。

(我发现网上的其他答案和文档很有用,但它们似乎都没有告诉你在Windows中哪里可以找到my.ini文件。)

© www.soinside.com 2019 - 2024. All rights reserved.