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),復雜場景建議咨詢專業人士。