CentOS7服务器上MariaDB v5频繁自动重启问题求助
故障排查请求:CentOS7上MariaDB每隔20秒自动重启
问题现象
- CentOS7服务器上的MariaDB服务每隔约20秒自动重启,无明显触发报错
- 即使停止HTTP服务、无任何数据库查询请求,服务仍持续循环重启
- 该问题导致无法完成数据库备份
服务器资源状态
- CPU负载约0.1
- 内存使用率约40%
- 未使用交换分区
systemd日志片段
Aug 13 11:16:10 instance-1 systemd: Stopping MariaDB database server... Aug 13 11:16:13 instance-1 systemd: Stopped MariaDB database server. Aug 13 11:16:13 instance-1 systemd: Starting MariaDB database server... Aug 13 11:16:13 instance-1 mariadb-prepare-db-dir: Database MariaDB is probably initialized in /var/lib/mysql already, nothing is done. Aug 13 11:16:13 instance-1 mariadb-prepare-db-dir: If this is not the case, make sure the /var/lib/mysql is empty before running mariadb-prepare-db-dir. Aug 13 11:16:13 instance-1 mysqld_safe: 220813 11:16:13 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'. Aug 13 11:16:13 instance-1 mysqld_safe: 220813 11:16:13 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql Aug 13 11:16:15 instance-1 systemd: Started MariaDB database server. Aug 13 11:16:45 instance-1 systemd: Stopping MariaDB database server... Aug 13 11:16:49 instance-1 systemd: Stopped MariaDB database server. Aug 13 11:16:49 instance-1 systemd: Starting MariaDB database server... Aug 13 11:16:49 instance-1 mariadb-prepare-db-dir: Database MariaDB is probably initialized in /var/lib/mysql already, nothing is done. Aug 13 11:16:49 instance-1 mariadb-prepare-db-dir: If this is not the case, make sure the /var/lib/mysql is empty before running mariadb-prepare-db-dir. Aug 13 11:16:49 instance-1 mysqld_safe: 220813 11:16:49 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'. Aug 13 11:16:49 instance-1 mysqld_safe: 220813 11:16:49 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql Aug 13 11:16:51 instance-1 systemd: Started MariaDB database server.
MariaDB日志片段(/var/log/mariadb/mariadb.log)
Version: '5.5.68-MariaDB' socket: '/var/lib/mysql/mysql.sock' port: 3306 MariaDB Server 220813 11:25:41 [Note] /usr/libexec/mysqld: Normal shutdown 220813 11:25:41 [Note] Event Scheduler: Purging the queue. 0 events 220813 11:25:41 InnoDB: Starting shutdown... 220813 11:25:44 InnoDB: Shutdown completed; log sequence number 28842439769 220813 11:25:44 [Note] /usr/libexec/mysqld: Shutdown complete 220813 11:25:44 mysqld_safe mysqld from pid file /run/mariadb/mariadb.pid ended 220813 11:25:45 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 220813 11:25:45 [Note] /usr/libexec/mysqld (mysqld 5.5.68-MariaDB) starting as process 22908 ... 220813 11:25:45 InnoDB: The InnoDB memory heap is disabled 220813 11:25:45 InnoDB: Mutexes and rw_locks use GCC atomic builtins 220813 11:25:45 InnoDB: Compressed tables use zlib 1.2.7 220813 11:25:45 InnoDB: Using Linux native AIO 220813 11:25:45 InnoDB: Initializing buffer pool, size = 128.0M 220813 11:25:45 InnoDB: Completed initialization of buffer pool 220813 11:25:45 InnoDB: highest supported file format is Barracuda. 220813 11:25:45 InnoDB: Waiting for the background threads to start 220813 11:25:46 Percona XtraDB (http://www.percona.com) 5.5.61-MariaDB-38.13 started; log sequence number 28842439769 220813 11:25:46 [Note] Plugin 'FEEDBACK' is disabled. 220813 11:25:46 [Note] Server socket created on IP: '0.0.0.0'. 220813 11:25:46 [Note] Event Scheduler: Loaded 0 events 220813 11:25:46 [Note] /usr/libexec/mysqld: ready for connections. Version: '5.5.68-MariaDB' socket: '/var/lib/mysql/mysql.sock' port: 3306 MariaDB Server
排查思路
- 检查systemd服务配置:查看
/usr/lib/systemd/system/mariadb.service或/etc/systemd/system/mariadb.service.d/下的配置文件,确认Restart等参数是否设置异常,比如是否存在导致服务被强制重启的规则 - 排查外部触发因素:
- 查看定时任务:执行
crontab -l(分别检查root和mysql用户),确认是否有定时停止MariaDB的任务 - 跟踪进程终止信号:用
strace -p <mariadb进程ID>实时跟踪进程,查看是否收到SIGTERM/SIGKILL等终止信号 - 检查系统内核日志:执行
dmesg查看是否有内核层面的错误导致进程被终止
- 查看定时任务:执行
- 验证MariaDB配置与权限:
- 检查
/etc/my.cnf及/etc/my.cnf.d/下的配置,确认是否存在异常的超时或自动退出参数 - 确认
/var/lib/mysql目录及文件的所有者为mysql:mysql,权限设置正常
- 检查
- 检查数据库完整性:
- 手动启动安全模式:执行
mysqld_safe --skip-grant-tables --skip-networking,观察服务是否仍会自动重启 - 验证InnoDB完整性:在安全模式下执行
CHECK TABLE检查核心表,或使用innochecksum工具验证InnoDB数据文件
- 手动启动安全模式:执行
- 排查服务监控机制:
- 执行
systemctl show mariadb查看服务的监控参数,比如WatchdogSec是否被误配置导致服务被判定为无响应而重启 - 检查是否存在第三方监控工具(如monit)在监控MariaDB并触发重启操作
- 执行
内容的提问来源于stack exchange,提问作者JIm Rolt
相关产品推荐
相关产品推荐

