微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

15.10 – 为什么mariadb会继续死亡?我怎么阻止它?

我在Ubuntu 15.10上运行MariaDB 10.0.23-0作为LAMP服务器.运行sudo /etc/init.d/mysql start会导致:

mariadb.service的作业失败,因为超时超时.有关详细信息,请参阅“systemctl status mariadb.service”和“journalctl -xe”.

systemctl status mariadb.service的输出是:

● mariadb.service - MariaDB database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/mariadb.service.d
           └─migrated-from-my.cnf-settings.conf
   Active: Failed (Result: timeout) since Sat 2016-03-26 22:52:42 EDT; 26s ago
  Process: 8707 ExecStart=/usr/sbin/MysqLd $MysqLD_OPTS $_WSREP_NEW_CLUSTER (code=exited, status=0/SUCCESS)
  Process: 8706 ExecStartPre=/usr/bin/install -m 755 -o MysqL -g root -d /var/run/MysqLd (code=exited, status=0/SUCCESS)
 Main PID: 8707 (code=exited, status=0/SUCCESS)

Mar 26 22:52:39 boggan systemd[1]: mariadb.service: Start operation timed out. Terminating.
Mar 26 22:52:39 boggan MysqLd[8707]: 2016-03-26 22:52:39 140105856617216 [Note] /usr/sbin/MysqLd: normal shutdown
Mar 26 22:52:39 boggan MysqLd[8707]: 2016-03-26 22:52:39 140105856617216 [Note] Event Scheduler: Purging the queue. 0 events
Mar 26 22:52:39 boggan MysqLd[8707]: 2016-03-26 22:52:39 140104920164096 [Note] InnoDB: FTS optimize thread exiting.
Mar 26 22:52:39 boggan MysqLd[8707]: 2016-03-26 22:52:39 140105856617216 [Note] InnoDB: Starting shutdown...
Mar 26 22:52:42 boggan MysqLd[8707]: 2016-03-26 22:52:42 140105856617216 [Note] InnoDB: Shutdown completed; log sequence number 3336953
Mar 26 22:52:42 boggan MysqLd[8707]: 2016-03-26 22:52:42 140105856617216 [Note] /usr/sbin/MysqLd: Shutdown complete
Mar 26 22:52:42 boggan systemd[1]: Failed to start MariaDB database server.
Mar 26 22:52:42 boggan systemd[1]: mariadb.service: Unit entered Failed state.
Mar 26 22:52:42 boggan systemd[1]: mariadb.service: Failed with result 'timeout'`

一个系统线有一种“井”.我知道它超时了.第二个systemd,在MysqLd行之后有点神秘,因为它确实启动了.依赖于数据库的应用程序(特别是OwnCloud)正常工作…用于MariaDB启动的分钟和更改.

Another question建议使用时间/etc/init.d/MysqL start来确定它需要多长时间.我反复跑来确认时间 – 每次90秒左右都是几秒钟.

其他研究让我检查文件权限,这很好……此外,它确实启动,暂时.我已经戳了戳并且向我最好的(在Linux方面证明是有限的)能力,我没有取得任何进展.

所以,问题是……如何让MariaDB服务保持稳定?

作为一个额外的皱纹,在写完这个问题之后,我让机器运转起来.一周后我回来了(我之间没有碰过).使用完全相同的命令,sudo /etc/init.d/MysqL start,成功了. MysqL守护进程启动并运行;它带回了一个[ok]报告.我重新启动了实验,我回到了我开始的地方.

如果重要,journalctl -xe的输出是:

Apr 02 23:51:44 boggan systemd[1]: Stopped Read required files in advance.
-- Subject: Unit ureadahead.service has finished shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit ureadahead.service has finished shutting down.
Apr 02 23:51:55 boggan MysqLd[2645]: 2016-04-02 23:51:55 140386161068800 [Note] InnoDB: Online DDL : Start
Apr 02 23:51:55 boggan MysqLd[2645]: 2016-04-02 23:51:55 140386161068800 [Note] InnoDB: Online DDL : Start reading clustered index of the table and create temporary files
Apr 02 23:51:55 boggan MysqLd[2645]: 2016-04-02 23:51:55 140386161068800 [Note] InnoDB: Online DDL : End of reading clustered index of the table and create temporary files
Apr 02 23:51:55 boggan MysqLd[2645]: 2016-04-02 23:51:55 140386161068800 [Note] InnoDB: Online DDL : Completed
Apr 02 23:51:55 boggan MysqLd[2645]: 2016-04-02 23:51:55 140386161068800 [Note] InnoDB: Online DDL : Completed
Apr 02 23:52:06 boggan dbus[713]: [system] Failed to activate service 'org.bluez': timed out
Apr 02 23:52:37 boggan systemd[1]: mariadb.service: Start operation timed out. Terminating.
Apr 02 23:52:37 boggan MysqLd[2645]: 2016-04-02 23:52:37 140386097400576 [Note] /usr/sbin/MysqLd: normal shutdown
Apr 02 23:52:37 boggan kernel: audit: type=1400 audit(1459655557.935:31): apparmor="DENIED" operation="sendmsg" profile="/usr/sbin/MysqLd" name="/run/systemd/notify" pid=2645 comm="MysqLd" requested_mask="w" denied_mask="w" fsuid=122 ouid=0
Apr 02 23:52:37 boggan audit[2645]: AVC apparmor="DENIED" operation="sendmsg" profile="/usr/sbin/MysqLd" name="/run/systemd/notify" pid=2645 comm="MysqLd" requested_mask="w" denied_mask="w" fsuid=122 ouid=0
Apr 02 23:52:37 boggan MysqLd[2645]: 2016-04-02 23:52:37 140386097400576 [Note] Event Scheduler: Purging the queue. 0 events
Apr 02 23:52:37 boggan MysqLd[2645]: 2016-04-02 23:52:37 140385225500416 [Note] InnoDB: FTS optimize thread exiting.
Apr 02 23:52:37 boggan MysqLd[2645]: 2016-04-02 23:52:37 140386097400576 [Note] InnoDB: Starting shutdown...
Apr 02 23:52:39 boggan MysqLd[2645]: 2016-04-02 23:52:39 140386097400576 [Note] InnoDB: Shutdown completed; log sequence number 3360838
Apr 02 23:52:39 boggan MysqLd[2645]: 2016-04-02 23:52:39 140386097400576 [Note] /usr/sbin/MysqLd: Shutdown complete
Apr 02 23:52:39 boggan kernel: audit: type=1400 audit(1459655559.419:32): apparmor="DENIED" operation="sendmsg" profile="/usr/sbin/MysqLd" name="/run/systemd/notify" pid=2877 comm="MysqLd" requested_mask="w" denied_mask="w" fsuid=122 ouid=0
Apr 02 23:52:39 boggan audit[2877]: AVC apparmor="DENIED" operation="sendmsg" profile="/usr/sbin/MysqLd" name="/run/systemd/notify" pid=2877 comm="MysqLd" requested_mask="w" denied_mask="w" fsuid=122 ouid=0
Apr 02 23:52:39 boggan audit[2645]: AVC apparmor="DENIED" operation="sendmsg" profile="/usr/sbin/MysqLd" name="/run/systemd/notify" pid=2645 comm="MysqLd" requested_mask="w" denied_mask="w" fsuid=122 ouid=0
Apr 02 23:52:39 boggan kernel: audit: type=1400 audit(1459655559.419:33): apparmor="DENIED" operation="sendmsg" profile="/usr/sbin/MysqLd" name="/run/systemd/notify" pid=2645 comm="MysqLd" requested_mask="w" denied_mask="w" fsuid=122 ouid=0
Apr 02 23:52:39 boggan systemd[1]: Failed to start MariaDB database server.
-- Subject: Unit mariadb.service has Failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit mariadb.service has Failed.
-- 
-- The result is Failed.
Apr 02 23:52:39 boggan systemd[1]: mariadb.service: Unit entered Failed state.
Apr 02 23:52:39 boggan systemd[1]: mariadb.service: Failed with result 'timeout'.

解决方法:

apparmor是罪魁祸首.尽管/etc/apparmor.d/usr.sbin.MysqLd的内容只是评论并声称它存在,因此apparmor不会阻塞MariaDB,这正是发生的事情.

Oracle博客上的AppArmor and MySQL提供了我需要弄清楚发生了什么.

sudo aa-status显示了apparmor正在做什么;什么实际上有一个强制执行的政策,而不是什么只是抱怨.

sudo apt-get install apparmor-utils添加了一些命令,使apparmor配置文件更易于处理,例如……

sudo aa-complain /usr/sbin / MysqLd将配置文件从“强制执行”变为抱怨. (aa-enforce将其退回.)

一旦完成,sudo服务apparmor重新加载重启apparmor,瞧… sudo /etc/init.d/MysqL启动工作,服务器保持运行.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐