我想知道如何在localhost(xampp)中检查MySQL严格模式是打开还是关闭.
如果在那时为什么模式和如何关闭.
如果关闭然后如何开启.
我已经跟着http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sql-mode-full和https://mariadb.com/kb/en/mariadb/sql_mode/和其他相关网站也是.但我没有得到我的问题的确切答案.
Ips*_*out 77
- > STRICT_TRANS_TABLES负责设置MySQL严格模式.
- > 检查是否启用了严格模式运行以下sql:
SHOW VARIABLES LIKE 'sql_mode';
Run Code Online (Sandbox Code Playgroud)
如果其中一个值是STRICT_TRANS_TABLES,则启用严格模式,否则不启用.在我的情况下它给了
+--------------+------------------------------------------+
|Variable_name |Value |
+--------------+------------------------------------------+
|sql_mode |STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION|
+--------------+------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
因此在我的情况下启用严格模式,因为其中一个值是STRICT_TRANS_TABLES.
- > 要禁用严格模式运行以下sql:
set global sql_mode='';
Run Code Online (Sandbox Code Playgroud)
[或除STRICT_TRANS_TABLES之外的任何模式.例如:设置全局sql_mode ='NO_ENGINE_SUBSTITUTION';]
- >再次启用严格模式运行下面的sql:
set global sql_mode='STRICT_TRANS_TABLES';
Run Code Online (Sandbox Code Playgroud)
Dra*_*ire 38
要在ubuntu中永久更改它,请执行以下操作
在ubuntu命令行中
sudo nano /etc/mysql/my.cnf
Run Code Online (Sandbox Code Playgroud)
然后添加以下内容
[mysqld]
sql_mode=
Run Code Online (Sandbox Code Playgroud)
小智 8
首先,使用以下命令检查mysql中是否启用了严格模式:
SHOW VARIABLES LIKE 'sql_mode';
Run Code Online (Sandbox Code Playgroud)
如果要禁用它:
SET sql_mode = '';
Run Code Online (Sandbox Code Playgroud)
或以下任何其他模式可以设置.要启用严格模式:
SET sql_mode = 'STRICT_TRANS_TABLES';
Run Code Online (Sandbox Code Playgroud)
您可以从第一个mysql查询中检查结果.
要在 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"
Run Code Online (Sandbox Code Playgroud)
从此 sql-mode 行中删除STRICT_TRANS_TABLES,,保存文件并重新启动 MYSQL57 服务。SHOW VARIABLES LIKE 'sql_mode';通过在(新的)MySQL 命令行客户端窗口中执行来验证结果。
(我发现网上的其他答案和文档很有用,但它们似乎都没有告诉您在 Windows 中哪里可以找到 my.ini 文件。)
检查值
SELECT @@GLOBAL.sql_mode;
Run Code Online (Sandbox Code Playgroud)
然后使用以下命令清除@@global.sql_mode:
SET @@GLOBAL.sql_mode=''
Run Code Online (Sandbox Code Playgroud)