如何在Debian 11的MariaDB 10.5中永久设置sql_mode?
解决Debian 11下MariaDB重启后自动添加STRICT_TRANS_TABLES的问题
先登录MariaDB,执行以下命令查看当前生效的
sql_mode:SELECT @@sql_mode;把输出内容复制下来,去掉其中的
STRICT_TRANS_TABLES,保留其他模式项。在
/etc/mysql/conf.d/目录下新建一个自定义配置文件(文件名以99开头确保最后加载,覆盖默认设置),比如99-custom-sql-mode.cnf:sudo nano /etc/mysql/conf.d/99-custom-sql-mode.cnf在文件中添加以下内容,把
sql_mode的值替换成你刚才处理后的字符串:[mysqld] sql_mode = "NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"(注:这里的示例是去掉
STRICT_TRANS_TABLES后的常见默认值,实际以你第一步查询到的内容为准,只移除STRICT_TRANS_TABLES即可)保存文件后,重启MariaDB服务:
sudo systemctl restart mariadb再次登录MariaDB执行
SELECT @@sql_mode;,确认STRICT_TRANS_TABLES已被移除,且重启服务后设置依然生效。
为什么之前找不到相关配置?
Debian 11打包的MariaDB 10.5默认没有在配置文件中显式定义sql_mode,而是使用编译时内置的默认值。因此你在现有配置文件中搜不到sql_mode相关设置,需要手动添加配置来覆盖默认行为。
内容的提问来源于stack exchange,提问作者Chiwda
相关产品推荐
相关产品推荐

