現象:service mysql status 顯示 mysql is not running but lock exists,實際進程已無,殘留鎖文件誤導監控腳本。
rm -f /var/lock/subsys/mysql(CentOS/RHEL)或 /var/lock/mysql(Debian/Ubuntu)。rm -f /var/run/mysqld/mysqld.pid 或 datadir/hostname.pid。rm -f /var/log/mysqld.log(或 datadir/*.err),舊日誌體積大可能導致啟動卡頓。chown -R mysql:mysql /var/lib/mysql /var/run/mysqld /var/log/mysqld.log。systemctl start mysqld。df -h,清理 ibtmp1、舊 binlog。ausearch -m avc | grep mysqld,臨時 setenforce 0 驗證。innodb_log_file_size 修改後未刪 ib_logfile* 導致啟動失敗,留下 lock 殘留。pid-file/lock-file 獨立路徑。/scripts/mysqlup --force # 重裝二進制
/scripts/restartsrv_mysql # 服務管理腳本重啟
若仍失敗,檢查 /usr/local/cpanel/3rdparty/bin/mysqladmin 路徑是否正確。
#!/bin/bash
systemctl stop mysqld
rm -f /var/lock/subsys/mysql /var/run/mysqld/mysqld.pid /var/lib/mysql/*.pid
chown -R mysql:mysql /var/lib/mysql /var/run/mysqld
systemctl start mysqld
systemctl status mysqld