强制重启系统后MySQL无法启动是一个常见问题,通常是由于非正常关闭导致的数据文件损坏或锁定文件未清除。以下是详细的解决方案:
/var/lib/mysql
目录下的.pid
或.sock
文件残留ib_logfile0
和ib_logfile1
文件损坏检查MySQL错误日志:
cat /www/server/data/*.err | grep -i error
尝试安全启动MySQL:
/etc/init.d/mysqld start --skip-grant-tables --skip-networking
修复损坏的表(如果错误日志提示特定表损坏):
mysqlcheck -u root -p --auto-repair --check-all-databases
备份数据目录:
cp -r /www/server/data /www/server/data_backup
尝试恢复InnoDB:
innodb_force_recovery=1 /etc/init.d/mysqld start
如果级别1不行,尝试增加到6(逐步增加,每次增加1)
如果恢复成功,导出数据然后重新安装MySQL
停止MySQL服务:
/etc/init.d/mysqld stop
删除锁定文件:
rm -f /www/server/data/*.pid
rm -f /tmp/mysql.sock
rm -f /var/lib/mysql/mysql.sock
重新启动MySQL:
/etc/init.d/mysqld start
检查磁盘空间:
df -h
检查MySQL目录权限:
chown -R mysql:mysql /www/server/data
chmod -R 755 /www/server/data
如果以上方法都无法解决问题,可能需要考虑从备份恢复数据或联系专业数据库恢复服务。