centos

CentOS MySQL数据库如何恢复

小樊
39
2025-10-21 18:14:43
栏目: 云计算

CentOS系统恢复MySQL数据库的常见方法

一、使用mysqldump备份文件恢复

适用场景:适用于通过mysqldump工具创建的逻辑备份(如全量备份或单数据库备份)。
操作步骤

  1. 准备备份文件:确保已有数据库的.sql备份文件(如backup.sql,若为压缩文件需先解压,例:gunzip backup.sql.gz)。
  2. 停止MySQL服务(可选):为避免恢复过程中数据冲突,建议停止服务(systemctl stop mysqld)。
  3. 执行恢复命令:使用mysql客户端导入备份文件,例:mysql -u root -p 数据库名 < backup.sql(需替换为实际数据库名和备份文件路径)。
  4. 启动MySQL服务(若停止)systemctl start mysqld
  5. 验证恢复结果:登录MySQL(mysql -u root -p),执行SHOW DATABASES;查看数据库是否存在,或查询表数据确认完整性。

二、使用Percona XtraBackup物理备份恢复

适用场景:适用于InnoDB引擎的大容量数据库,支持热备份(无需停止服务),恢复速度快。
操作步骤

  1. 安装XtraBackup:通过YUM仓库安装,例:yum install percona-xtrabackup-24-mysql(需替换为适合CentOS版本的包)。
  2. 创建全量备份:使用innobackupex命令备份数据目录(如/data/mysql/backup/),例:innobackupex --defaults-file="/etc/my.cnf" --user=root --password=密码 --socket="/var/lib/mysql/mysql.sock" /data/mysql/backup/
  3. 准备备份:恢复前需“准备”备份(应用事务日志),例:innobackupex --defaults-file="/etc/my.cnf" --prepare --target-dir=/data/mysql/backup/
  4. 停止MySQL服务systemctl stop mysqld
  5. 清空数据目录:删除原数据库文件(rm -rf /var/lib/mysql/*)。
  6. 恢复备份:将准备好的备份复制到数据目录,例:innobackupex --defaults-file="/etc/my.cnf" --copy-back --target-dir=/data/mysql/backup/
  7. 调整权限:修改数据目录属主为mysql:mysqlchown -R mysql:mysql /var/lib/mysql)。
  8. 启动MySQL服务systemctl start mysqld
  9. 验证恢复:登录MySQL检查数据。

三、基于二进制日志(Binlog)的时间点恢复

适用场景:需恢复到某个特定时间点(如误删除数据、误更新),前提是开启了二进制日志(log-bin参数开启)。
操作步骤

  1. 确认二进制日志位置:查看备份时记录的CHANGE MASTER TO语句(如在mysqldump备份文件中搜索MASTER_LOG_FILEMASTER_LOG_POS),或通过SHOW MASTER STATUS;获取当前日志位置。
  2. 提取增量日志:使用mysqlbinlog工具提取指定时间段的日志,例:mysqlbinlog --start-datetime="2025-10-01 10:00:00" --stop-datetime="2025-10-01 11:00:00" /var/lib/mysql/mysql-bin.000001 > inc.sql(替换为实际日志文件和时间范围)。
  3. 执行增量恢复:将提取的日志导入数据库,例:mysql -u root -p 数据库名 < inc.sql

四、物理冷备恢复(直接拷贝数据目录)

适用场景:适用于同版本MySQL数据库,且数据目录未损坏的情况(如磁盘故障后恢复)。
操作步骤

  1. 停止MySQL服务systemctl stop mysqld
  2. 备份当前数据(可选):防止数据覆盖,将原数据目录(如/var/lib/mysql)重命名(mv /var/lib/mysql /var/lib/mysql.bak)。
  3. 恢复冷备文件:将备份的压缩包解压到数据目录,例:tar xvf mysql.tar.gz -C /var/lib/mysql/mysql.tar.gz为之前通过tar zcvf mysql.tar.gz /var/lib/mysql创建的备份)。
  4. 调整权限:修改数据目录属主为mysql:mysqlchown -R mysql:mysql /var/lib/mysql)。
  5. 启动MySQL服务systemctl start mysqld
  6. 验证恢复:登录MySQL检查数据。

注意事项

0
看了该问题的人还看了