19.10 上的问题集 sql_mode

19.10 上的问题集 sql_mode

当我尝试使用 mysql 8.0.19 为我的 19.10 ubuntu 设置 sql_mode 时遇到了一些严重的问题。

我需要将其设置为:

sql_mode = ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

(我尝试过使用或不使用双引号)

我跑:

which mysqld
/usr/sbin/mysqld

然后

/usr/sbin/mysqld --verbose --help | grep -A 1 "Default options"
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf

我尝试在每个文件上添加该行(甚至在 /etc/mysql/my.cnf 链接的文件夹/文件中),但是当我尝试重新加载服务时,该行会出现错误。

使其工作的唯一文件是我手动创建的“~/.my.cnf”。但是现在 sql_mode 并不像我想要的那样:

mysql> SHOW VARIABLES LIKE 'sql_mode';
+---------------+-----------------------------------------------------------------------------------------------------------------------+
| Variable_name | Value                                                                                                                 |
+---------------+-----------------------------------------------------------------------------------------------------------------------+
| sql_mode      | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION |
+---------------+-----------------------------------------------------------------------------------------------------------------------+

但我找不到谁设置了其他值以及在哪里设置了其他值……而且这种模式似乎无法使我的 crm (vtiger) 工作。我非常怀疑该设置是否只针对我的用户而不是 www-data,或者我错了?

答案1

在最新版本的 ubuntu / debian 中我正在修改该文件:/lib/systemd/system/mysql.service

ExecStart=/usr/sbin/mysqld --sql-mode=NO_ENGINE_SUBSTITUTION

然后:

systemctl daemon-reload
systemctl restart mysql

对文件的更改*.cnf不产生任何影响

在此处输入图片描述

相关内容