Невозможно изменить местоположение журнала ошибок для MySQL 5.7 в Ubuntu 16.04

Всякий раз, когда я меняю местоположение журнала

: / var / log / mysql на: / var / www

, чтобы хранить все файлы журналов в одном и том же месте (просто в общей папке) в mysqld.cnf сервер mysql не может перезагрузиться.

/etc/mysql/mysql.conf.d/mysqld.cnf log_error = /var/log/mysql/mysql_errors.log

Я проверил некоторые решения и добавил:

/etc/mysql/mysql.conf.d/mysqld.cnf

collation-server = utf8_general_ci

] character-set-server = utf8

Но все еще не сработало. / var / www имеет 770 разрешений и принадлежит группе www-data.

collation-server = utf8_general_ci

Я добавил mysql в группу www-data:

sudo usermod -aG www-data mysql

Но все равно не работает.

MySQL: 5.7.19

Работа для mysql.service не удалось, поскольку процесс управления завершился с кодом ошибки. Подробности см. В разделе «Systemctl status mysql.service» и «journalctl -xe».

log_error = /var/log/mysql/mysql_errors.log

Ubuntu: 16.04.1

Вот журнал ошибок :

mysql.service: главный процесс завершен, код = выведен, статус = 1 / FAILURE

sudo touch /var/www/mysql_errors.log sudo chown mysql:mysql /var/www/mysql_errors.log sudo chmod 770 /var/www/mysql_errors.log sudo systemctl restart mysql sudo journalctl -xe > ~/journal.txt

Всякий раз, когда я отменю изменение местоположения журнала, он начинает работать.

-- Unit mysql.service has begun starting up. Jul 31 00:33:55 mydomain.com audit[1738]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/1738/status" pid=1738 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=112 ouid=112 Jul 31 00:33:55 mydomain.com audit[1738]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/var/www/mysql_errors.log" pid=1738 comm="mysqld" requested_mask="ac" denied_mask="ac" fsuid=112 ouid=112 Jul 31 00:33:55 mydomain.com audit[1738]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" Jul 31 00:33:55 mydomain.com systemd[1]: mysql.service: Main process exited, code=exited, status=1/FAILURE
3
задан 31 July 2017 в 10:46

3 ответа

Теперь, основываясь на предоставленной вами ссылке и другом ресурсе о взаимосвязи между AppArmor и Mysql, я смог заставить ее работать. Политика, управляющая mysql, загружается из этого места /usr/sbin/mysqld, которое вы можете видеть при запуске: sudo aa-status. Это может быть изменено с::

/etc/apparmor.d/usr.sbin.mysqld

и

/etc/apparmor.d/local/usr.sbin.mysqld

Я буду изменять последнее.

Шаги:

[d4 ] Я создал папку /var/www/html/mysql и разместил там файл (error.log). Я считаю, что mysql будет искать такой файл. Теперь это мое собственное местоположение журнала. Откройте /etc/appparmor.d/local/usr.sbin.mysqld и добавьте следующие строки:
/var/www/html/mysql/ r,
/var/www/html/mysql/** rwk,
Интерпретация: /var/www/html/mysql/ r,: -> предоставить mysql доступ для чтения к этой папке. /var/www/html/mysql/** rwk,: -> дать mysql читать, записывать и блокировать доступ к содержимому. Откройте /etc/mysql/mysql.conf.d/mysqld.cnf и измените местоположение журнала на:
#log_error = /var/log/mysql/error.log
log_error = /var/www/html/mysql/error.log
Теперь перезапустите apparmor: sudo systemctl restart apparmor Теперь перезапустите mysql: sudo systemctl restart mysql

Примечание:

[d5 ] Я создал папку /var/www/html/mysql и разместил там файл (error.log). Я считаю, что mysql будет искать такой файл. Теперь это мое собственное местоположение в журнале.

Я создал папку /var/www/html/mysql и разместил там файл (error.log). Я считаю, что mysql будет искать такой файл.

sudo usermod -a -G www-data mysql

Добавлен пользователь mysql в группу www-data:

Теория:

Apparmor это способ Ubuntu удостовериться, что есть мелкий контроль над тем, кто обращается к файловой системе и как это делается. Он имеет два режима, принудительные и жалобные режимы. Режим принудительного исполнения находится там, где mysql попадает под (для просмотра этого пробега sudo aa-status).

Вы можете либо изменить mysql на complain mode, где apparmor будет жаловаться только, но не препятствовать mysql доступ к другим областям файловой системы. В этом случае я выбираю enforce mode и просто изменил политику apparmor для mysql. Чтобы изменить эти apparmor режимы, которые вы должны установить apparmor-utils, а затем вы могли бы просто сделать sudo aa-complain /usr/sbin/mysqld и apparmor теперь только жалуются на нарушения файловой системы mysql.

Для изменения политики используются два местоположения: (1) /etc/apparmor.d/usr.sbin.mysqld и (2) /etc/appamrmor.d/local/usr/sbin/mysqld. Выбор будет зависеть от желаемого типа изменения (по всей сети или от конкретной машины). Итак, измените свои планы.

Примечание:

https://blogs.oracle.com/jsmyth/apparmor-and-mysql [!d36 ]

1
ответ дан 22 May 2018 в 20:02
  • 1
    Это очень понравилось! Я добавил эти строки, чтобы избавиться от других сообщений DENY apparmour: / sys / devices / system / node / r, / proc / ** r, / sys / devices / system / ** r, – Tarik 1 August 2017 в 16:29

Теперь, основываясь на предоставленной вами ссылке и другом ресурсе о взаимосвязи между AppArmor и Mysql, я смог заставить ее работать. Политика, управляющая mysql, загружается из этого места /usr/sbin/mysqld, которое вы можете видеть при запуске: sudo aa-status. Это может быть изменено с::

/etc/apparmor.d/usr.sbin.mysqld

и

/etc/apparmor.d/local/usr.sbin.mysqld

Я буду изменять последнее.

Шаги:

Я создал папку /var/www/html/mysql и разместил там файл (error.log). Я считаю, что mysql будет искать такой файл. Теперь это мое собственное местоположение журнала. Откройте /etc/appparmor.d/local/usr.sbin.mysqld и добавьте следующие строки: /var/www/html/mysql/ r, /var/www/html/mysql/** rwk, Интерпретация: /var/www/html/mysql/ r,: -> предоставить mysql доступ для чтения к этой папке. /var/www/html/mysql/** rwk,: -> дать mysql читать, записывать и блокировать доступ к содержимому. Откройте /etc/mysql/mysql.conf.d/mysqld.cnf и измените местоположение журнала на: #log_error = /var/log/mysql/error.log log_error = /var/www/html/mysql/error.log Теперь перезапустите apparmor: sudo systemctl restart apparmor Теперь перезапустите mysql: sudo systemctl restart mysql

Примечание:

Я создал папку /var/www/html/mysql и разместил там файл (error.log). Я считаю, что mysql будет искать такой файл. Теперь это мое собственное местоположение в журнале.

Я создал папку /var/www/html/mysql и разместил там файл (error.log). Я считаю, что mysql будет искать такой файл.

sudo usermod -a -G www-data mysql

Добавлен пользователь mysql в группу www-data:

Теория:

Apparmor это способ Ubuntu удостовериться, что есть мелкий контроль над тем, кто обращается к файловой системе и как это делается. Он имеет два режима, принудительные и жалобные режимы. Режим принудительного исполнения находится там, где mysql попадает под (для просмотра этого пробега sudo aa-status).

Вы можете либо изменить mysql на complain mode, где apparmor будет жаловаться только, но не препятствовать mysql доступ к другим областям файловой системы. В этом случае я выбираю enforce mode и просто изменил политику apparmor для mysql. Чтобы изменить эти apparmor режимы, которые вы должны установить apparmor-utils, а затем вы могли бы просто сделать sudo aa-complain /usr/sbin/mysqld и apparmor теперь только жалуются на нарушения файловой системы mysql.

Для изменения политики используются два местоположения: (1) /etc/apparmor.d/usr.sbin.mysqld и (2) /etc/appamrmor.d/local/usr/sbin/mysqld. Выбор будет зависеть от желаемого типа изменения (по всей сети или от конкретной машины).

Примечание:

https://blogs.oracle.com/jsmyth/apparmor-and-mysql

]
1
ответ дан 18 July 2018 в 09:25

Теперь, основываясь на предоставленной вами ссылке и другом ресурсе о взаимосвязи между AppArmor и Mysql, я смог заставить ее работать. Политика, управляющая mysql, загружается из этого места /usr/sbin/mysqld, которое вы можете видеть при запуске: sudo aa-status. Это может быть изменено с::

/etc/apparmor.d/usr.sbin.mysqld

и

/etc/apparmor.d/local/usr.sbin.mysqld

Я буду изменять последнее.

Шаги:

Я создал папку /var/www/html/mysql и разместил там файл (error.log). Я считаю, что mysql будет искать такой файл. Теперь это мое собственное местоположение журнала. Откройте /etc/appparmor.d/local/usr.sbin.mysqld и добавьте следующие строки: /var/www/html/mysql/ r, /var/www/html/mysql/** rwk, Интерпретация: /var/www/html/mysql/ r,: -> предоставить mysql доступ для чтения к этой папке. /var/www/html/mysql/** rwk,: -> дать mysql читать, записывать и блокировать доступ к содержимому. Откройте /etc/mysql/mysql.conf.d/mysqld.cnf и измените местоположение журнала на: #log_error = /var/log/mysql/error.log log_error = /var/www/html/mysql/error.log Теперь перезапустите apparmor: sudo systemctl restart apparmor Теперь перезапустите mysql: sudo systemctl restart mysql

Примечание:

Я создал папку /var/www/html/mysql и разместил там файл (error.log). Я считаю, что mysql будет искать такой файл. Теперь это мое собственное местоположение в журнале.

Я создал папку /var/www/html/mysql и разместил там файл (error.log). Я считаю, что mysql будет искать такой файл.

sudo usermod -a -G www-data mysql

Добавлен пользователь mysql в группу www-data:

Теория:

Apparmor это способ Ubuntu удостовериться, что есть мелкий контроль над тем, кто обращается к файловой системе и как это делается. Он имеет два режима, принудительные и жалобные режимы. Режим принудительного исполнения находится там, где mysql попадает под (для просмотра этого пробега sudo aa-status).

Вы можете либо изменить mysql на complain mode, где apparmor будет жаловаться только, но не препятствовать mysql доступ к другим областям файловой системы. В этом случае я выбираю enforce mode и просто изменил политику apparmor для mysql. Чтобы изменить эти apparmor режимы, которые вы должны установить apparmor-utils, а затем вы могли бы просто сделать sudo aa-complain /usr/sbin/mysqld и apparmor теперь только жалуются на нарушения файловой системы mysql.

Для изменения политики используются два местоположения: (1) /etc/apparmor.d/usr.sbin.mysqld и (2) /etc/appamrmor.d/local/usr/sbin/mysqld. Выбор будет зависеть от желаемого типа изменения (по всей сети или от конкретной машины). Итак, измените свои планы.

Примечание:

https://blogs.oracle.com/jsmyth/apparmor-and-mysql

1
ответ дан 24 July 2018 в 19:20

Другие вопросы по тегам:

Похожие вопросы: