Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: MySQL и apparmor  (Прочитано 1555 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн venoel

  • Автор темы
  • Любитель
  • *
  • Сообщений: 77
    • Просмотр профиля
MySQL и apparmor
« : 02 Июнь 2016, 11:39:22 »
Исходные данные: Ubuntu 16.04, MySQL 5.6
Проблема: не применяются изменения в my.cnf.

Задумал я настройки MySQL поменять.
До этого работал с MySQL на Ubuntu 10.04, 14.04 - дорога проторенная.

Пишу изменения в /etc/mysq/my.cnf, делаю рестарт серверу, а настройки не применяются. Пробую изменять настройки в файле ~/.my.cnf, а они тоже не применяются. В /var/log/mysql никаких замечаний нет.

Сразу не придал особого внимания тому, что /etc/mysql/my.cnf на самом деле ссылка на /etc/alternatives/my.cnf, которая есть в свою очередь ссылка на /etc/mysql/my.cnf.fallback. Кстати вот совсем не понятна такая околесица.

Небольшой свет на происходящее приоткрыла комманда
strace -e trace=open mysqld
Она показала, что файл(который ссылка) /etc/mysql/my.cnf не читается. Права на файл 644, владелец root:root. Почему не читается - не понятно.

В общем всему виной оказался apparmor, который не дает читать mysql файлы, которые находятся в директориях, не указанных в apparmor.

Помогло: http://serverfault.com/questions/439378/mysql-not-reading-symlinks-for-options-files-my-cnf
В частности:
Цитировать


It may be caused by apparmor which is enabled for mysqld by default from ubuntu 9.0.4. Please see http://en.wikipedia.org/wiki/AppArmor .

    You can modify site-specific additions in /etc/apparmor.d/local/. I've suffered the same problem and edited /etc/apparmor.d/local/usr.sbin.mysqld to make it work. Be aware of the last comma in the policy file.

    # Site-specific additions and overrides for usr.sbin.mysqld.
    # For more details, please see /etc/apparmor.d/local/README.

    # vim:syntax=apparmor

    /etc/mysql/conf.d/* rl,
    @{HOMEDIRS}/** rwk,

    After editing /etc/apparmor.d/local/usr.sbin.mysqld, restart apparmor service by service apparmor restart. There should be no error or warning about /etc/apparmor.d/local/usr.sbin.mysqld .
    In my case, I wanted to use datadir and site-specific my.cnf located in users's home directory.

После этого и файл ~/.my.cnf стал читаться и настройки из него стали применяться.


E2140@1.6GHz/DG31PR/2Gb/HD2600XT/18.04 Bionic Beaver
Lenovo G555 Athlon M320/3Gb/HD4550/16.04 Xenial Xerus
G620@2.60 GHz/8G/Radeon HD 7570/18.04 Bionic Beaver

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 26062
    • Просмотр профиля
Re: MySQL и apparmor
« Ответ #1 : 02 Июнь 2016, 14:53:23 »
Потому что надо было делать свои настройки не … там где вы делали, а в /etc/mysql/conf.d/
# less /etc/mysql/conf.d/mysqld.cnf
[mysqld]
bind-address = 0.0.0.0
datadir = "/wwwroot/MySQL/data"

character-set-server = cp1251
collation-server = cp1251_general_ci

sql-mode = "STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

default-storage-engine = InnoDB

innodb_data_home_dir = "/wwwroot/MySQL/data"
innodb_file_per_table
innodb_flush_log_at_trx_commit = 1
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн venoel

  • Автор темы
  • Любитель
  • *
  • Сообщений: 77
    • Просмотр профиля
Re: MySQL и apparmor
« Ответ #2 : 02 Июнь 2016, 16:05:34 »
И так и пробовал.

Но файлы из /etc/mysql/conf.d подключаются из /etc/mysql/my.cnf, который такие не читался, из-за того, что бы линком на каталог не из apparmor.
E2140@1.6GHz/DG31PR/2Gb/HD2600XT/18.04 Bionic Beaver
Lenovo G555 Athlon M320/3Gb/HD4550/16.04 Xenial Xerus
G620@2.60 GHz/8G/Radeon HD 7570/18.04 Bionic Beaver

Оффлайн venoel

  • Автор темы
  • Любитель
  • *
  • Сообщений: 77
    • Просмотр профиля
Re: MySQL и apparmor
« Ответ #3 : 02 Октябрь 2016, 00:23:59 »
Что-то мне мой же собственный совет не помогает.

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 читает нужный мне файл:
strace -e trace=open mysqld
(Нажмите, чтобы показать/скрыть)

Перегрузил конфигурацию
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
Эффект тот же.

Что я делаю не так?


E2140@1.6GHz/DG31PR/2Gb/HD2600XT/18.04 Bionic Beaver
Lenovo G555 Athlon M320/3Gb/HD4550/16.04 Xenial Xerus
G620@2.60 GHz/8G/Radeon HD 7570/18.04 Bionic Beaver

Оффлайн n2011all

  • Новичок
  • *
  • Сообщений: 25
    • Просмотр профиля
Re: MySQL и apparmor
« Ответ #4 : 03 Октябрь 2016, 22:09:34 »
а может сюда посмотрите
https://dev.mysql.com/doc/refman/5.7/en/option-files.html
Table 5.2 Option Files Read on Unix and Unix-Like Systems
и в самом *.cnf указаны инклюды в том числе и на
/etc/mysql/mysql.conf.d/mysqld.cnf
как указал колега выше....

Оффлайн venoel

  • Автор темы
  • Любитель
  • *
  • Сообщений: 77
    • Просмотр профиля
Re: MySQL и apparmor
« Ответ #5 : 04 Октябрь 2016, 18:11:06 »
Сообщение #3 писал уже заполночь с мыслью о том, что на одном компе у меня это получилось, а на другом не получается, но должно ведь получится, раз на первом вышло.

Хотелось, чтобы получилось использовать файл из ~/.my.cnf. Понедельник показал, что и на первом компе я ~/.my.cnf не использую. Почему пост #3 прошу считать бредом и не принимать во внимание.

Пользователь добавил сообщение 04 Октябрь 2016, 18:17:51:
Но первый то пост я писал не ночью.
И он написан по "горячим" следам. Что-то все у меня уже спуталось, видимо сильно часто переустанавливал Ubuntu за последние полгода. :)
« Последнее редактирование: 04 Октябрь 2016, 18:17:51 от venoel »
E2140@1.6GHz/DG31PR/2Gb/HD2600XT/18.04 Bionic Beaver
Lenovo G555 Athlon M320/3Gb/HD4550/16.04 Xenial Xerus
G620@2.60 GHz/8G/Radeon HD 7570/18.04 Bionic Beaver

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 26062
    • Просмотр профиля
Re: MySQL и apparmor
« Ответ #6 : 04 Октябрь 2016, 18:21:54 »
~/.my.cnf используется только утилитами пользователя.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн venoel

  • Автор темы
  • Любитель
  • *
  • Сообщений: 77
    • Просмотр профиля
Re: MySQL и apparmor
« Ответ #7 : 05 Октябрь 2016, 12:51:45 »
~/.my.cnf используется только утилитами пользователя.
Да, я уже тоже к этому склонялся.
E2140@1.6GHz/DG31PR/2Gb/HD2600XT/18.04 Bionic Beaver
Lenovo G555 Athlon M320/3Gb/HD4550/16.04 Xenial Xerus
G620@2.60 GHz/8G/Radeon HD 7570/18.04 Bionic Beaver

 

Страница сгенерирована за 0.06 секунд. Запросов: 24.