在CentOS系统上进行MySQL数据库恢复,通常有以下几种方法:
安装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
验证数据恢复:
连接数据库并检查数据是否恢复成功。
安装MySQL:
sudo yum install mysql-server
备份数据库:
mysqldump -u root -p database_name > backup.sql
恢复数据库:
mysql -u root -p database_name < backup.sql
查看二进制日志:
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
当MySQL因非正常关闭而损坏时,可以通过设置innodb_force_recovery
参数在my.cnf
中进行恢复。参数值从1到6,数值越大,恢复过程越强烈。
请注意,在进行任何恢复操作之前,请确保备份当前数据库,以防进一步的数据丢失。如果数据被删除或覆盖,恢复可能不完全成功。