我在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] 举报,一经查实,本站将立刻删除。