MariaDB在Linux上的数据恢复方法如下:
停止服务:
sudo systemctl stop mariadb
备份当前数据(可选):
sudo cp -R /var/lib/mysql /var/lib/mysql_backup
从SQL备份恢复:
mysql -u root -p < /path/to/backup.sql
从物理备份恢复:
sudo rsync -aAXv /path/to/backup/mysql/ /var/lib/mysql/
sudo chown -R mysql:mysql /var/lib/mysql
sudo systemctl start mariadb
使用工具恢复(如xtrabackup/mariabackup):
# 恢复全量备份
innobackupex --apply-log /path/to/backup
sudo rsync -aP /path/to/backup/ /var/lib/mysql/
sudo chown -R mysql:mysql /var/lib/mysql
sudo systemctl start mariadb
# 恢复全量备份
mariabackup --prepare --target-dir=/path/to/backup
sudo rsync -aP /path/to/backup/ /var/lib/mysql/
sudo chown -R mysql:mysql /var/lib/mysql
sudo systemctl start mariadb
修复表(针对损坏的表):
sudo myisamchk -r /var/lib/mysql/database_name/table_name.MYI
/etc/my.cnf
),添加:[mysqld]
innodb_force_recovery = 1
逐步增加值(最大6)直至能启动服务,然后导出数据。基于二进制日志恢复(针对误操作):
# 查看二进制日志定位误操作
mysqlbinlog /var/lib/mysql/mysql-bin.000001 --start-datetime="YYYY-MM-DD HH:MM:SS" --database=database_name
# 生成恢复SQL并执行
mysqlbinlog --start-datetime="YYYY-MM-DD HH:MM:SS" --database=database_name /var/lib/mysql/mysql-bin.000001 > recovery.sql
mysql -u root -p < recovery.sql
注意:操作前确保有完整备份,优先使用官方工具(如mariabackup),复杂场景建议咨询专业人士。