当我在 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 上禁用严格模式?
通过 SSH 编辑
/etc/my.cnf 文件
添加
sql_mode=NO_ENGINE_SUBSTITUTION
重新启动 MariaDB
它将解决问题
*编辑 - 如果重新启动 msyql 服务时出现错误,请尝试在 my.cnf 中添加上面的“[mysqld]”
这对我有用:
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)
您可以使用以下语句来禁用此会话的 stict 模式:
set session sql_mode= replace((replace((select @@sql_mode), "STRICT_ALL_TABLES", "")), "STRICT_TRANS_TABLES", "");