[笔记]重新加载apparmor服务

16.04 MySQL将不会启动,因为 AppArmor?

 

文章标签:apparmor  STA  

问题:

我正在 Kubuntu 16.04上安装 mysql-server-5.7,但我是 Having的麻烦。

sudo apt install mysql-server 给出以下输出。


Setting up mysql-server-5.7 (5.7.18-0ubuntu0.16.04.1).. .


Renaming removed key_buffer and myisam-recover options (if present)


Job for mysql.service failed because the control process exited with error code. See"systemctl status mysql.service" and"journalctl -xe" for details.


invoke-rc.d: initscript mysql, action"start" failed.


● mysql.service - MySQL Community Server


 Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)


 Active: activating (auto-restart) (Result: exit-code) since ons 2017-05-17 09:48:39 CEST; 10ms ago


 Process: 13622 ExecStartPost=/usr/share/mysql/mysql-systemd-start post (code=exited, status=0/SUCCESS)


 Process: 13621 ExecStart=/usr/sbin/mysqld (code=exited, status=2)


 Process: 13612 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)


 Main PID: 13621 (code=exited, status=2)



maj 17 09:48:39 anis systemd[1]: Failed to start MySQL Community Server.


maj 17 09:48:39 anis systemd[1]: mysql.service: Unit entered failed state.


maj 17 09:48:39 anis systemd[1]: mysql.service: Failed with result 'exit-code'.


dpkg: error processing package mysql-server-5.7 (--configure):


 subprocess installed post-installation script returned error exit status 1


dpkg: dependency problems prevent configuration of mysql-server:


 mysql-server depends on mysql-server-5.7; however:


 Package mysql-server-5.7 is not configured yet.



dpkg: error processing package mysql-server (--configure):


 dependency problems - leaving unconfigured


Errors were encountered while processing:


 mysql-server-5.7


 mysql-server


E: Sub-process/usr/bin/dpkg returned an error code (1)


当试图通过运行 journalctl -xe 进行故障排除时,我得到如下输出,这似乎表明AppArmor给我带来了麻烦。


maj 17 09:53:14 anis systemd[1]: Starting MySQL Community Server...


-- Subject: Unit mysql.service has begun start-up


-- Defined-By: systemd


-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel


-- 


-- Unit mysql.service has begun starting up.


maj 17 09:53:14 anis audit[14767]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/14767/status" pid=14767 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=124 ouid=124


maj 17 09:53:14 anis audit[14767]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/sys/devices/system/node/" pid=14767 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=124 ouid=0


maj 17 09:53:14 anis kernel: audit: type=1400 audit(1495007594.314:240): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/14767/status" pid=14767 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=124 ouid=124


maj 17 09:53:14 anis kernel: audit: type=1400 audit(1495007594.314:241): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/sys/devices/system/node/" pid=14767 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=124 ouid=0


maj 17 09:53:14 anis kernel: audit: type=1400 audit(1495007594.314:242): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/14767/status" pid=14767 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=124 ouid=124


maj 17 09:53:14 anis audit[14767]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/14767/status" pid=14767 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=124 ouid=124


maj 17 09:53:14 anis audit[14767]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/14767/task/14767/mem" pid=14767 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=124 ouid=124


maj 17 09:53:14 anis kernel: audit: type=1400 audit(1495007594.658:243): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/14767/task/14767/mem" pid=14767 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=124 ouid=124


maj 17 09:53:14 anis systemd[1]: mysql.service: Main process exited, code=exited, status=2/INVALIDARGUMENT


我怎么才能解决这个问题?


回答 1:

你需要编辑你的apparmor配置,让MySQL访问这些文件。 日志消息告诉你 /usr/sbin/mysqld 需要读取( r ) 访问 /proc/14767/status/sys/devices/system/node/ ( 尾部斜杠,因为它想要读取目录) 和 /proc/14767/task/14767/mem。 要编辑的文件为 /etc/apparmor.d/usr.sbin.mysqld

在我的例子中,我通过在中间( 前面有两个空格) 中添加这些行解决了问题:


/proc/*/status r,


/sys/devices/system/node/r,


/sys/devices/system/node/node0/meminfo r,


( 注意第二行的尾部斜杠。)

然后,尝试启动 MySQL,如果获得更多错误,请同时添加这些文件,然后再试一次。

这里是我在其他地方给这个问题的回答。


回答 2:

它可能是:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=739846,所以尝试使用


echo"exit 0">> /etc/init.d/mysql


dpkg --configure -a


如果它没有帮助用户:


sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-5.5


sudo apt-get install mysql-server


要完全删除你的mysql并重新安装警告: 如果你有任何数据库他们将被删除。


回答 3:

我用这个解决了这个问题

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

添加这些行;


/data/r,


/data/** rwk,


重新加载apparmor服务


#sudo service apparmor reload



回答 4:

在我的例子中,使用上述答案在 Ubuntu 16.04上安装 mysql-server-5.7 后,工作的内容是:

  • 运行 sudo apt install mysql-server
  • 检查上面的确切错误
  • 重新引导
  • 运行 sudo apt install mysql-server 再次继续安装
  • 已经完成安装。


回答 5:

  • stop mysql-server
  • rm/var/lib/mysql/ib_logfile*
  • restart mysql
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值