当 MySQL 无法启动时,可以按照以下步骤进行排查和解决:
首先查看 MySQL 的错误日志,这是最重要的诊断信息来源:
# 通常位于以下位置之一
sudo tail -n 100 /var/log/mysql/error.log
sudo tail -n 100 /var/log/mysqld.log
sudo netstat -tulnp | grep 3306
# 如果被占用,可以杀死占用进程或修改MySQL端口
sudo chown -R mysql:mysql /var/lib/mysql
sudo chmod -R 755 /var/lib/mysql
df -h
# 清理空间或扩展存储
sudo mysqld --verbose --help # 检查配置是否正确
sudo mysqld --validate-config # 验证配置文件
sudo mysqlcheck --all-databases --check-upgrade --auto-repair
sudo mysqld_safe --skip-grant-tables --skip-networking &
# 检查状态
sudo systemctl status mysql
# 或
sudo service mysql status
# 重启服务
sudo systemctl restart mysql
# 或
sudo service mysql restart
# 查看启动日志
sudo journalctl -u mysql -n 50 --no-pager
# 在my.cnf中添加
[mysqld]
innodb_force_recovery = 1
然后启动MySQL,导出数据,重新初始化数据库
sudo myisamchk -r /path/to/table.MYI
sudo systemctl stop mysql
sudo rm -rf /var/lib/mysql/*
sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
sudo systemctl start mysql
如果以上方法都无法解决,请根据具体的错误日志信息进一步排查问题。