Всякий раз, когда я меняю местоположение журнала
: / 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
Теперь, основываясь на предоставленной вами ссылке и другом ресурсе о взаимосвязи между 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 ]
Теперь, основываясь на предоставленной вами ссылке и другом ресурсе о взаимосвязи между 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
]Теперь, основываясь на предоставленной вами ссылке и другом ресурсе о взаимосвязи между 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