在MariaDB中使sql_mode永久化

rslzwgfq  于 2023-10-20  发布在  其他
关注(0)|答案(1)|浏览(91)

每次重新启动,STRICT_TRANS_TABLES都会被添加到sql_mode。我必须去phpmyadmin,并删除它在变量。我试着用SQL命令改变它,但它似乎不能在服务器重启后存活下来。
这个问题有existing answers,但它们似乎是过时的。我在Debian 11Apache 2.4.56上使用MariaDB版本10.5.21-MariaDB-0+ deb 11 u1。我也看了MariaDB sql_mode documentation,但没有提到在哪里永久更改sql_mode。
根据我的搜索,我希望它在/etc/mysql/my.cnf中,但似乎MariaDB现在做的事情不同了。my.cnf包含:

[client-server]
# Port or socket location where to connect
# port = 3306
socket = /run/mysqld/mysqld.sock

# Import all .cnf files from configuration directory
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mariadb.conf.d/

所以我检查了上述两个目录中的每个文件,但没有运气。我甚至尝试了grepping,以防我在视觉上错过了它:

sudo grep -rnw '/etc/mysql/conf.d/' -e 'sql_mode'
 sudo grep -rnw '/etc/mysql/mariadb.conf.d/' -e 'sql_mode'

我错过了什么?

46scxncf

46scxncf1#

STRICT_TRANS_TABLES是默认sql_mode的一部分。
要使其永久化,需要将其添加到配置文件中,如。
/etc/mysql/mariadb.conf.d/general.cnf:

[mariadb]
sql_mode=ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ONLY_FULL_GROUP_BY

相关问题