当我尝试使用 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,或者我错了?