温馨提示×

CentOS MySQL数据恢复方法有哪些

小樊
43
2025-07-28 16:34:08
栏目: 云计算

在CentOS系统上进行MySQL数据库恢复,通常有以下几种方法:

使用Percona XtraBackup进行恢复

  • 安装Percona XtraBackup

    wget https://www.percona.com/downloads/XtraBackup/XtraBackup-2.2.8/binary/redhat/7/x86_64/percona-xtrabackup-2.2.8-5059.el7.x86_64.rpmyum localinstall percona-xtrabackup-2.2.8-5059.el7.x86_64.rpm 
  • 创建备份

    innobackupex --defaults-file="/etc/my.cnf" --user="root" --password="password" --socket="/var/lib/mysql/mysql.sock" /data/mysql/backup/ 
  • 模拟数据丢失

    rm -rf /var/lib/mysql/* 
  • 恢复数据

    innobackupex --defaults-file="/etc/my.cnf" --user="root" --password="password" --socket="/var/lib/mysql/mysql.sock" --prepare --target-dir=/data/mysql/backup/ innobackupex --defaults-file="/etc/my.cnf" --user="root" --password="password" --socket="/var/lib/mysql/mysql.sock" --copy-back --target-dir=/data/mysql/backup/ 
  • 重启数据库服务

    systemctl restart mysqld 
  • 验证数据恢复

    连接数据库并检查数据是否恢复成功。

使用mysqldump进行恢复

  • 安装MySQL

    sudo yum install mysql-server 
  • 备份数据库

    mysqldump -u root -p database_name > backup.sql 
  • 恢复数据库

    mysql -u root -p database_name < backup.sql 

使用二进制日志(binlog)进行恢复

  • 查看二进制日志

    mysqlbinlog mysql-bin.000003 
  • 恢复数据

    mysql -u root -p --start-datetime="2024-01-01 00:00:00" --stop-datetime="2024-01-02 00:00:00" mysql 

使用InnoDB_force_recovery进行恢复

当MySQL因非正常关闭而损坏时,可以通过设置innodb_force_recovery参数在my.cnf中进行恢复。参数值从1到6,数值越大,恢复过程越强烈。

请注意,在进行任何恢复操作之前,请确保备份当前数据库,以防进一步的数据丢失。如果数据被删除或覆盖,恢复可能不完全成功。

0