Как я могу настроить apparmor, чтобы позволить mariadb загружать общую библиотеку?

Вчера после обычного обновления MariaDB не запустилась, потому что файл общей библиотеки не загружается, потому что он заблокирован apparmor.

Вот вывод из журнала.

Apr 17 11:44:45 pbts-academic audit[10349]: AVC apparmor="DENIED" operation="file_mmap" profile="/usr/sbin/mysqld" name="/usr/lib/x86_64-linux-gnu/liblz4.so.1.7.1"
Apr 17 11:44:45 pbts-academic kernel: audit: type=1400 audit(1555472685.956:79): apparmor="DENIED" operation="file_mmap" profile="/usr/sbin/mysqld" name="/usr/lib/x86_64-linux-gnu/liblz4.so.1.7.1"
Apr 17 11:44:45 pbts-academic mysqld[10349]: /usr/sbin/mysqld: error while loading shared libraries: liblz4.so.1: failed to map segment from shared object
Apr 17 11:44:45 pbts-academic systemd[1]: mariadb.service: Main process exited, code=exited, status=127/n/a
Apr 17 11:44:45 pbts-academic systemd[1]: mariadb.service: Failed with result 'exit-code'.
Apr 17 11:44:45 pbts-academic systemd[1]: Failed to start MariaDB 10.3.14 database server.
-- Subject: Unit mariadb.service has failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
-- 
-- Unit mariadb.service has failed.
-- 
-- The result is RESULT.

Заранее спасибо.

1 ответ

Добавьте строки в/etc/apparmor.d/usr.sbin.mysqld(или/etc/apparmor.d/usr.sbin.mysqld.local)

      /usr/lib/x86_64-linux-gnu/liblz4.so* rm,

rm, не удаляя, позволяет apparmor читать и отображать файл в памяти, что и нужно MariaDB для загрузки общей библиотеки.

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