我在Ubuntu 15.10上运行MariaDB 10.0.23-0作为LAMP服务器。运行
● mariadb.service - MariaDB数据库服务器 已加载:已加载(/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) Drop-In:/etc/systemd/system/mariadb.service.d └─migrated-from-my.cnf-settings.conf 活动状态:失败(结果:超时)自2016年3月26日22:52:42 EDT以来;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(code=exited, status=0/SUCCESS)
Mar 26 22:52:39 boggan systemd[1]: mariadb.service:启动操作超时。终止。 Mar 26 22:52:39 boggan mysqld[8707]: 2016-03-26 22:52:39 140105856617216 [Note] /usr/sbin/mysqld:正常关闭 Mar 26 22:52:39 boggan mysqld[8707]: 2016-03-26 22:52:39 140105856617216 [Note] 事件调度程序:清除队列。0个事件 Mar 26 22:52:39 boggan mysqld[8707]: 2016-03-26 22:52:39 140104920164096 [Note] InnoDB:FTS优化线程退出。 Mar 26 22:52:39 boggan mysqld[8707]: 2016-03-26 22:52:39 140105856617216 [Note] InnoDB:开始关闭... Mar 26 22:52:42 boggan mysqld[8707]: 2016-03-26 22:52:42 140105856617216 [Note] InnoDB:关闭完成;日志序列号3336953 Mar 26 22:52:42 boggan mysqld[8707]: 2016-03-26 22:52:42 140105856617216 [Note] /usr/sbin/mysqld:关闭完成 Mar 26 22:52:42 boggan systemd[1]: 无法启动MariaDB数据库服务器。 Mar 26 22:52:42 boggan systemd[1]: mariadb.service:进入失败状态。 Mar 26 22:52:42 boggan systemd[1]: mariadb.service:以结果“超时”失败。
第一行的
其他研究让我检查文件权限,权限都没问题...而且它确实会临时启动。我已经尽力去调试了(尽管对Linux的了解有限),但没有取得任何进展。
所以,问题是...如何让MariaDB服务保持运行?
sudo /etc/init.d/mysql start
会出现以下结果:
mariadb.service的工作失败,因为超时时间已经超过。请参考"systemctl status mariadb.service"和"journalctl -xe"获取详细信息。
systemctl status mariadb.service
的输出为:● mariadb.service - MariaDB数据库服务器 已加载:已加载(/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) Drop-In:/etc/systemd/system/mariadb.service.d └─migrated-from-my.cnf-settings.conf 活动状态:失败(结果:超时)自2016年3月26日22:52:42 EDT以来;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(code=exited, status=0/SUCCESS)
Mar 26 22:52:39 boggan systemd[1]: mariadb.service:启动操作超时。终止。 Mar 26 22:52:39 boggan mysqld[8707]: 2016-03-26 22:52:39 140105856617216 [Note] /usr/sbin/mysqld:正常关闭 Mar 26 22:52:39 boggan mysqld[8707]: 2016-03-26 22:52:39 140105856617216 [Note] 事件调度程序:清除队列。0个事件 Mar 26 22:52:39 boggan mysqld[8707]: 2016-03-26 22:52:39 140104920164096 [Note] InnoDB:FTS优化线程退出。 Mar 26 22:52:39 boggan mysqld[8707]: 2016-03-26 22:52:39 140105856617216 [Note] InnoDB:开始关闭... Mar 26 22:52:42 boggan mysqld[8707]: 2016-03-26 22:52:42 140105856617216 [Note] InnoDB:关闭完成;日志序列号3336953 Mar 26 22:52:42 boggan mysqld[8707]: 2016-03-26 22:52:42 140105856617216 [Note] /usr/sbin/mysqld:关闭完成 Mar 26 22:52:42 boggan systemd[1]: 无法启动MariaDB数据库服务器。 Mar 26 22:52:42 boggan systemd[1]: mariadb.service:进入失败状态。 Mar 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
的输出如下:
journalctl -xe
的输出被截断了,你能更新一下吗?如果你的操作系统上启用了 apparmor,请仔细查看apparmor="DENIED"
的消息,因为这可能是 mariadb 启动过程中的一个问题。 - tlo