首页/系统/信创系统运维速查/数据库启动失败的排查顺序
常见问题65 条

数据库启动失败的排查顺序

库起不来完看三处:服务状态摘要、数据库错误日志、数据目录与磁盘状态;常见根因是磁盘满、属主错误、配置改动与端口占用。

信创系统运维速查系统更新于 2026-10-13

数据库起不来先取证再动手

数据库启动失败时反复执行拉起命令,只会不断产生新的日志与残留进程,让现场更乱。正确的做法是先取三处证据:服务管理器的状态摘要、数据库自身的错误日志、数据目录与磁盘状态。绝大多数启动失败都能从这三处直接读到原因。

高频根因集中在四类

磁盘空间不足导致无法写入或扩展文件;数据目录属主被动过导致数据库拒绝访问;配置被修改后参数不合法或路径失效;端口被残留进程占用。这四类都与「最近有什么变更」强相关,对比备份配置与变更记录能快速缩小范围。

基本信息

取证入口服务状态、数据库错误日志、系统日志
日志位置随产品不同,多在数据目录或安装目录下
关键检查磁盘空间、目录属主、端口占用、最近配置变更
恢复前提确认数据文件完整后再尝试启动

典型使用场景

  • 服务器重启后数据库没有自动拉起,业务无法访问
  • 磁盘写满后数据库异常退出,扩容后仍起不来
  • 运维调整配置参数后数据库启动失败
  • 同机部署多个实例,端口冲突导致其中一个起不来
  • 数据目录被迁移或权限变更后实例无法启动

三处取证

三处取证
systemctl status <数据库服务名> --no-pager | head -20
journalctl -u <数据库服务名> --since '10 min ago' | tail -40
# 数据库自有错误日志(位置随产品而定,示例):
# MySQL 类:数据目录下的错误日志或 /var/log 下同名日志
# 达梦:安装目录 log 目录    金仓:数据目录下的日志目录
ls -lt <日志目录> | head -5                    # 找最近写入的日志文件

根因快查

根因快查
df -h <数据目录>                             # 磁盘空间是否耗尽
ls -ld <数据目录>                            # 属主与权限是否正确
ss -lntp | grep <端口>                        # 端口占用,含残留进程
ls -l <配置文件>                              # 配置最近是否被改动
tail -50 <错误日志>                           # 直接读最后的报错行

根因与处置

报错线索根因处置
写入失败或空间不足磁盘写满清理或扩容后重启,检查数据完整性
权限被拒绝数据目录属主或权限被改恢复属主与权限后重启
参数不合法配置文件被修改与备份配置对比后回退
端口已被占用残留进程或实例重复启动确认归属后再处理占用进程
数据文件损坏异常断电或介质故障按产品流程做恢复,勿反复尝试启动
启动失败不要反复强行拉起:每轮启动都会写日志并可能改动数据文件状态,先读明白日志再采取动作,需要恢复时优先使用备份与归档日志。

易错点

  • 数据目录被误用高权限账号操作过,属主变化后数据库拒绝启动,需先恢复属主而不是重装
  • 端口占用往往来自上一轮的残留进程,未确认归属就结束进程可能影响其他实例
  • 磁盘写满后只扩容不检查数据文件完整性,启动后可能报更严重的错误
  • 反复启动失败实例,日志被覆盖或滚动,最早的报错线索丢失

数据来源与参考

  • MySQL 官方文档(错误日志)
  • man 1 journalctl
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌