记录了常见的mariadb启动失败的原因,以及相应的定位方式
定位方式
以centos为例,mariadb.service管理通常由systemctl完成,故常见方式为:
- systemctl start/restart mariadb.service
- 如果上面出问题,看
- journalctl -xe
- mariadb err log
补充一句:err log默认呢是在/usr/libexec/mariadb-prepare-db-dir中定义了的,
也可以在systemctl status中看到
Jan 09 10:43:53 iCenter202 mysqld_safe[15832]: 170109 10:43:53 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.
找到log之后,一般启动失败的原因都在log中都有体现。如果目前还定位不出来,可以考虑分析mariadb.service的执行过程。
当然首先就是找到脚本在哪里,可以通过
|
|
vim看下/usr/lib/systemd/system/mariadb.service
,很简单,三个脚本的调用。
正常模式下,脚本执行没有啥log,可以通过在脚本第一行添加#!/bin/sh -x
来查看具体的脚本执行过程
- -x是个debug
- 如果加了-n,可以模拟测试执行这个脚本
FAQ
无法创建pid file
一般是没权限,比如/var/run/mariadb/
这个目录的权限不是mysql:mysql
,使用chown mysql:mysql /var/run/mariadb/
修改即可。
但是发现一个centos7下面的坑:戳这里
Table ‘./mysql/proc’ is marked as crashed and should be repaired
TODO