在 MariaDB 上禁用严格模式

问题描述 投票:0回答:3

当我在 phpmyadmin 中运行此 sql 时

SELECT @@SQL_MODE, @@GLOBAL.SQL_MODE; 

它显示

@@SQL_MODE STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 

@@GLOBAL.SQL_MODE STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 

如何使用 phpmydmin 在 MariaDB 上禁用严格模式?

mariadb mode strict disable
3个回答
18
投票

通过 SSH 编辑

/etc/my.cnf 文件

添加

sql_mode=NO_ENGINE_SUBSTITUTION

重新启动 MariaDB

它将解决问题

*编辑 - 如果重新启动 msyql 服务时出现错误,请尝试在 my.cnf 中添加上面的“[mysqld]”


4
投票

这对我有用:

root@MaRs:/etc/mysql# cat my.cnf|grep -v \#

[client-server]

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mariadb.conf.d/

[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION
root@MaRs:/etc/mysql# 

MariaDB [(none)]> SELECT @@SQL_MODE, @@GLOBAL.SQL_MODE; 
+------------------------+------------------------+
| @@SQL_MODE             | @@GLOBAL.SQL_MODE      |
+------------------------+------------------------+
| NO_ENGINE_SUBSTITUTION | NO_ENGINE_SUBSTITUTION |
+------------------------+------------------------+
1 row in set (0.000 sec)

0
投票

您可以使用以下语句来禁用此会话的 stict 模式:

set session sql_mode= replace((replace((select @@sql_mode), "STRICT_ALL_TABLES", "")), "STRICT_TRANS_TABLES", "");
© www.soinside.com 2019 - 2024. All rights reserved.