T.J*_*.L. 27 mysql timeout mariadb 15.10
我在 Ubuntu 15.10 上运行 MariaDB 10.0.23-0 作为 LAMP 服务器。运行sudo /etc/init.d/mysql start结果:
Job for mariadb.service failed because a timeout was exceeded. See "systemctl status mariadb.service" and "journalctl -xe" for details.
的输出systemctl status mariadb.service是:
? mariadb.service - MariaDB 数据库服务器
已加载:已加载(/lib/systemd/system/mariadb.service;已启用;供应商预设:已启用)
插入:/etc/systemd/system/mariadb.service.d
??migrated-from-my.cnf-settings.conf
活动:自美国东部时间周六 2016-03-26 22:52:42 起失败(结果:超时);26 秒前
进程:8707 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS $_WSREP_NEW_CLUSTER (code=exited, status=0/SUCCESS)
进程:8706 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
主PID:8707(代码=退出,状态=0/成功)
3 月 26 日 22:52:39 boggan systemd[1]:mariadb.service:启动操作超时。终止。
Mar 26 22:52:39 boggan mysqld[8707]: 2016-03-26 22:52:39 140105856617216 [注意] /usr/sbin/mysqld: 正常关机
Mar 26 22:52:39 boggan mysqld[8707]: 2016-03-26 22:52:39 140105856617216 [注意] 事件调度程序:清除队列。0 事件
Mar 26 22:52:39 boggan mysqld[8707]: 2016-03-26 22:52:39 140104920164096 [注意] InnoDB:FTS 优化线程退出。
Mar 26 22:52:39 boggan mysqld[8707]: 2016-03-26 22:52:39 140105856617216 [注意] InnoDB:正在启动关闭...
Mar 26 22:52:42 boggan mysqld[8707]: 2016-03-26 22:52:42 140105856617216 [注] InnoDB:关闭完成;日志序列号 3336953
Mar 26 22:52:42 boggan mysqld[8707]: 2016-03-26 22:52:42 140105856617216 [注意] /usr/sbin/mysqld:关闭完成
3 月 26 日 22:52:42 boggan systemd[1]:无法启动 MariaDB 数据库服务器。
3 月 26 日 22:52:42 boggan systemd[1]:mariadb.service:单元进入失败状态。
3 月 26 日 22:52:42 boggan systemd[1]:mariadb.service:因结果“超时”而失败
第一systemd行有点“嗯”。我知道它超时了。第二个systemd,在mysqld台词之后有点神秘,因为它确实开始了。依赖于数据库的应用程序(特别是OwnCloud)正常工作......对于MariaDB启动的一分钟和变化。
另一个问题建议使用time /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 提前读取所需文件。 -- 主题:单元 ureadahead.service 已完成关闭 -- 定义者:systemd -- 支持:http://lists.freedesktop.org/mailman/listinfo/systemd-devel —— -- 单元 ureadahead.service 已完成关闭。 Apr 02 23:51:55 boggan mysqld[2645]: 2016-04-02 23:51:55 140386161068800 [注] InnoDB:在线 DDL:开始 Apr 02 23:51:55 boggan mysqld[2645]: 2016-04-02 23:51:55 140386161068800 [注意] InnoDB:在线 DDL:开始读取表的聚集索引并创建临时文件 Apr 02 23:51:55 boggan mysqld[2645]: 2016-04-02 23:51:55 140386161068800 [注意] InnoDB: Online DDL: 读表的聚集索引结束并创建临时文件 Apr 02 23:51:55 boggan mysqld[2645]: 2016-04-02 23:51:55 140386161068800 [注] InnoDB:在线 DDL:已完成 Apr 02 23:51:55 boggan mysqld[2645]: 2016-04-02 23:51:55 140386161068800 [注] InnoDB:在线 DDL:已完成 4 月 2 日 23:52:06 boggan dbus[713]:[系统] 无法激活服务“org.bluez”:超时 4 月 2 日 23:52:37 boggan systemd[1]:mariadb.service:启动操作超时。终止。 Apr 02 23:52:37 boggan mysqld[2645]: 2016-04-02 23:52:37 140386097400576 [注意] /usr/sbin/mysqld: 正常关机 4 月 2 日 23:52:37 boggan 内核:审计:type=1400 审计(1459655557.935:31):apparmor="DENIED" operation="sendmsg" profile="/usr/sbin/mysqld" name="/run/systemd/通知"pid=2645 comm="mysqld"requested_mask="w" denied_mask="w" fsuid=122 ouid=0 4 月 2 日 23:52:37 boggan 审计 [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 [注意] 事件调度程序:清除队列。0 事件 Apr 02 23:52:37 boggan mysqld[2645]: 2016-04-02 23:52:37 140385225500416 [注意] InnoDB:FTS 优化线程退出。 Apr 02 23:52:37 boggan mysqld[2645]: 2016-04-02 23:52:37 140386097400576 [注意] InnoDB:正在启动关闭... Apr 02 23:52:39 boggan mysqld[2645]: 2016-04-02 23:52:39 140386097400576 [注] InnoDB:关闭完成;日志序列号 3360838 Apr 02 23:52:39 boggan mysqld[2645]: 2016-04-02 23:52:39 140386097400576 [注意] /usr/sbin/mysqld:关闭完成 4 月 2 日 23:52:39 boggan 内核:审计:type=1400 审计(1459655559.419:32):apparmor="DENIED" operation="sendmsg" profile="/usr/sbin/mysqld" name="/run/systemd/通知"pid=2877 comm="mysqld"requested_mask="w" denied_mask="w" fsuid=122 ouid=0 4 月 2 日 23:52:39 boggan 审计 [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 4 月 2 日 23:52:39 boggan 审计 [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 4 月 2 日 23:52:39 boggan 内核:审计:type=1400 审计(1459655559.419:33):apparmor="DENIED" operation="sendmsg" profile="/usr/sbin/mysqld" name="/run/systemd/通知"pid=2645 comm="mysqld"requested_mask="w" denied_mask="w" fsuid=122 ouid=0 4 月 2 日 23:52:39 boggan systemd[1]:无法启动 MariaDB 数据库服务器。 -- 主题:mariadb.service 单元失败 -- 定义者:systemd -- 支持:http://lists.freedesktop.org/mailman/listinfo/systemd-devel —— -- 单元 mariadb.service 失败。 —— -- 结果失败。 4 月 2 日 23:52:39 boggan systemd[1]:mariadb.service:单元进入失败状态。 4 月 2 日 23:52:39 boggan systemd[1]:mariadb.service:因结果“超时”而失败。
Chr*_*Aga 31
从 mysql 升级到 mariadb 后,我遇到了完全相同的问题。奇怪的是 service mariadb start 在超时时失败(在系统启动或手动时),而 service mysql start 成功。
TJL给出的解释是正确的,但更正对我不起作用。
$ sudo aa-complain /usr/sbin/mysqld
Setting /usr/sbin/mysqld to complain mode.
ERROR: /etc/apparmor.d/usr.sbin.mysqld contains no profile
Run Code Online (Sandbox Code Playgroud)
所以我禁用了配置文件(使用 aa-disable 似乎相当于pltocrat的解决方案)
$ sudo aa-disable /usr/sbin/mysqld
Disabling /usr/sbin/mysqld.
Run Code Online (Sandbox Code Playgroud)
我也禁用了 mysqld-akonadi 和 mysqld-digikam。
apparmor 重新加载是不够的,所以我不得不重新启动并且 mariadb 启动得非常好。
T.J*_*.L. 26
apparmor 是罪魁祸首。尽管内容/etc/apparmor.d/usr.sbin.mysqld只是评论并声称它在那里以便 apparmor 不会在 MariaDB 上窒息,但这正是正在发生的事情。
Oracle 博客上的AppArmor 和 MySQL提供了我需要弄清楚发生了什么。
sudo aa-status向您展示 apparmor 正在做什么;什么实际上有强制执行的政策,而不是刚刚设置的抱怨。
sudo apt-get install apparmor-utils 添加了一些使 apparmor 配置文件更易于处理的命令,例如...
sudo aa-complain /usr/sbin/mysqld将配置文件从“强制”变为抱怨。(aa-enforce把它转回来。)
完成后,sudo service apparmor reload重新启动 apparmor,瞧...sudo /etc/init.d/mysql start工作,并且服务器保持运行状态。
小智 17
我不得不在 apparmor 中完全禁用 mysql。一个aa-complain 不会为我做任何事情。所以 ...
ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
Run Code Online (Sandbox Code Playgroud)
然后重启
小智 11
一个简单的解决方案是删除任何未知的 AppArmor 配置文件:
aa-remove-unknown
Removing '/snap/core/6350/usr/lib/snapd/snap-confine'
Removing '/usr/sbin/mysqld'
Run Code Online (Sandbox Code Playgroud)
有用!