Изменение каталога ib_logfile * в MySQL 8.0 путем обновления innodb_log_group_home_dir - PullRequest
0 голосов
/ 29 февраля 2020

Я работаю на PO C, где я пытаюсь изменить файлы журнала транзакций в MySQL 8.0. Исходя из моих выводов, я думаю, что ib_logfile0 и ib_logfile1 - это файлы, с которыми мне следует иметь дело (есть ли другие файлы, которые мне следует рассмотреть?). Для этого, основываясь на инструкциях на этой странице, я пытаюсь сделать следующее:

  1. Стоп mysql. sudo systemctl stop mysql
  2. Добавьте строку innodb_log_group_home_dir = "/media/newdisk/iblogs" в /etc/mysql/mysql.conf.d/mysqld.cnf
  3. Начало mysql. sudo systemctl start mysql

Однако, похоже, это не сработало. Начало в шаге 3 не удается. Я пробовал следующее, но ничего из этого не помогло.

  • a. перезапущен apparmor: sudo systemctl restart apparmor
  • b. /media/newdisk где у меня есть внешний диск. Я создал каталог iblogs и назначил для него разрешения RWX (777).
  • c. sudo chown -R mysql:mysql /media/newdisk
  • d. Я рассмотрел вопрос о перемещении ib_logfile0 и ib_logfile1 в настоящее время в /var/lib/mysql (по умолчанию dadadir) в /media/newdisk/iblogs

Должен ли я также рассмотреть возможность добавления псевдонима в apparmor cnf? Если да, я не совсем понимаю, каким должен быть мой псевдоним. В некоторых примерах, на которые я посмотрел, весь каталог данных указывает на новое местоположение, в результате чего они установили псевдоним /var/lib/mysql для нового каталога. Но меня интересует только ib_logile *.

Попробовал описанный выше подход, используя это решение, но это не сработало.

Ответы [ 2 ]

1 голос
/ 01 марта 2020

Благодаря ссылке, предоставленной @ Биллом Карвином выше. https://ubuntu.com/tutorials/beginning-apparmor-profile-development#1 -overview

Так я смог решить проблему и успешно обновить только каталог журналов

  1. Стоп mySQL.
  2. Остановите Apparmor.
  3. Добавьте нужный каталог в mysqld.cnf
  4. Дайте разрешения для нужного каталога в usr.sbin.mysqld (mysql профиль)
  5. Запустите apparmor.
  6. Запустите mySQL;
1 голос
/ 29 февраля 2020

Apparmor часто запрещает таким службам, как mysqld, доступ к файлам, которые не находятся в указанных местах. Должен быть файл профиля для службы mysqld, который необходимо обновить, указав новое местоположение ваших лог-файлов ib.

Признаком может быть сообщение в журнале ошибок MySQL, что он не может открыться файл журнала ib, либо из-за проблем с правами доступа, либо из-за того, что файл не существует. Это может сбивать с толку, потому что нет никаких причин, почему это должны быть проблемы, за исключением apparmor.

Вы также можете попробовать полностью отключить apparmor в качестве теста. Если вы можете запустить MySQL Сервер успешно, когда apparmor выключен, это свидетельствует о том, что apparmor блокирует доступ к файлу.

Возможно, вы захотите прочитать об использовании или изменении профилей apparmor: https://ubuntu.com/tutorials/beginning-apparmor-profile-development#1 - Обзор

...