Ubuntu MariaDB故障恢复可按以下步骤操作,优先从备份恢复,无备份时尝试物理文件恢复或配置修复:
一、有备份时的恢复
-
停止MariaDB服务
sudo systemctl stop mariadb -
恢复SQL格式备份
mysql -u 用户名 -p 数据库名 < 备份文件.sql -
恢复.dump格式备份
mysqlimport -u 用户名 -p --local 数据库名 备份文件.dump # 或 mariadb-restore -u 用户名 -p --databases 数据库名 备份文件.dump -
启动服务并验证
sudo systemctl start mariadb mysql -u 用户名 -p 数据库名 # 检查数据是否恢复
二、无备份时的恢复(谨慎操作)
-
物理文件恢复(需提前备份数据目录)
- 停止服务并备份当前数据目录:
sudo systemctl stop mariadb sudo cp -r /var/lib/mysql /var/lib/mysql_backup - 用物理备份文件替换损坏文件(如.ibd文件):
sudo cp /path/to/backup/文件名.ibd /var/lib/mysql/ sudo chown mysql:mysql /var/lib/mysql/文件名.ibd sudo chmod 660 /var/lib/mysql/文件名.ibd - 启动服务并验证:
sudo systemctl start mariadb
- 停止服务并备份当前数据目录:
-
配置文件修复
- 检查
/etc/mysql/my.cnf权限和路径是否正确,修复后重启服务:sudo chown root:root /etc/mysql/my.cnf sudo systemctl restart mariadb
- 检查
三、其他场景
- 权限问题:确保数据目录属主为
mysql用户:sudo chown -R mysql:mysql /var/lib/mysql - 服务启动失败:查看日志
/var/log/mysql/error.log,根据错误提示修复(如跳过权限检查启动):sudo mysqld_safe --skip-grant-tables &
注意:物理恢复可能导致数据不一致,建议优先通过备份恢复,操作前务必备份当前数据。