Что-то мне мой же собственный совет не помогает.
Ubuntu 16.04.1 LTS xenial, mysqld Ver 5.7.13-0ubuntu0.16.04.2 for Linux on x86_64 ((Ubuntu))
Выполнил финт с apparmor из первого поста.
Внес нужные мне изменения в ~/.my.cnf.
~$ cat ~/.my.cnf
[mysqld]
sql-mode = ""
query_cache_type = ON
Убедился, что mysqld читает нужный мне файл:
strace -e trace=open mysqld
open("/etc/mysql/my.cnf", O_RDONLY) = 3
open("/etc/mysql/conf.d/", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4
open("/etc/mysql/conf.d/mysql.cnf", O_RDONLY) = 4
open("/etc/mysql/conf.d/mysqldump.cnf", O_RDONLY) = 4
open("/etc/mysql/mysql.conf.d/", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4
open("/etc/mysql/mysql.conf.d/mysqld.cnf", O_RDONLY) = 4
open("/etc/mysql/mysql.conf.d/mysqld_safe_syslog.cnf", O_RDONLY) = 4
open("/home/venoel/.my.cnf", O_RDONLY) = 3
Перегрузил конфигурацию
service mysql reload
или так
service mysql restart
или даже так
service mysql stop
service mysql start
Но заданные мною значение не применяются!
SELECT @@GLOBAL.sql_mode, @@GLOBAL.query_cache_type
union all
SELECT @@SESSION.sql_mode, @@SESSION.query_cache_type;
возвращает
# @@GLOBAL.sql_mode, @@GLOBAL.query_cache_type
'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION', 'OFF'
При этом команда
mysqld --print-defaults
показывает
mysqld would have been started with the following arguments:
...--sql-mode= --query-cache_type=ON...
А команда
mysqld --verbose --help
показывает, что переменная sql-mode пуста, а
query-cache-type ON
. Но по факту она не пуста и не дает мне делать то, что мне надо.
Я даже попытался перенести нужные мне параметры в /etc/mysql/mysql.conf.d/mysqld.conf
Эффект тот же.
Что я делаю не так?