mysql升级mysql 5.7启动失败,MySQL Server 5.7将无法启动,并且未填充错误日志

我也遇到了这个问题,我希望我的解决方案可以解决您的问题.

当我手动安装MySQL 5.7时它运行正常,但是使用Ansible角色它无法启动. mysql日志文件没有任何帮助.检查/ var / log / syslog但是我从AppArmor发现了很多消息:

Aug 10 18:50:05 vagrant-ubuntu-trusty-64 kernel: [ 4446.790627] type=1400 audit(1470855005.470:40): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/var/log/mysql.err" pid=13991 comm="mysqld" requested_mask="c" denied_mask="c" fsuid=109 ouid=109

AppArmor拒绝访问/var/log/mysql.err文件,因为它的mysqld策略不允许将文件写入/ var / log /,只是/ var / log / mysql /. mysql的AppArmor策略位于/etc/apparmor.d/usr.sbin.mysqld.处理日志文件访问的策略部分显示:

# Allow log file access

/var/log/mysql/ r,

/var/log/mysql/** rw,

这基本上说AppArmor希望将日志文件写入/ var / log / mysql而不用/ var / log.因为它看到mysql试图在策略内部的目录之外写入它会让你失望.有几个解决方案,包括添加一个新的策略让mysql写文件到/ var / log,但我发现最简单的更新处理日志文件的Ansible变量.

在geerlingguy.mysql角色的默认变量中,设置了两个日志文件指针:

mysql_slow_query_log_file: /var/log/mysql-slow.log

mysql_log_error: /var/log/mysql.err

我重写这些默认值并将它们移动到/ var / log / mysql:

mysql_slow_query_log_file: /var/log/mysql/mysql-slow.log

mysql_log_error: /var/log/mysql/mysql.err

现在AppArmor很高兴,mysql启动并运行得很好.我的剧本的其余部分正常完成.

有关AppArmor和MySQL的更多信息,此页面提供了讨论和备用解决方案:

https://blogs.oracle.com/jsmyth/entry/apparmor_and_mysql

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值