阿里云RDS数据恢复到本地MySQL数据库

参考自阿里云 恢复云数据库MySQL的备份文件到自建数据库, 本文补全了工具下载及安装过程,以及踩过的一些坑

1.工具下载

  • RDS MySQL 使用开源软件 percona-Xtrabackup 对MySQL 数据库进行备份。需要下载该软件,然后使用该软件进行恢复。

阿里云RDS数据恢复到本地MySQL数据库_第1张图片

阿里云RDS数据恢复到本地MySQL数据库_第2张图片

阿里云RDS数据恢复到本地MySQL数据库_第3张图片

  • 下载percona-toolkit

https://www.percona.com/downloads/percona-toolkit/2.2.16/RPM/percona-toolkit-2.2.16-1.noarch.rpm

  • 下载解压工具 rds_backup_extract (sh 文件),目前只支持 64 位 Linux 系统。

2.安装

  • 创建data目录

mkdir -p /home/mysql/data

  • 解压RDS备份文件

bash rds_backup_extract.sh -f <数据备份文件名>.tar.gz -C /home/mysql/data

f 指定要解压的备份集文件# -C 指定解压到的目录;-C 参数是可选的,如果不指定就解压到当前目录,如 bash rds_backup_extract -f backup.tar.gz

  • 安装Percona XtraBackup插件

yum install perl-DBI -y

yum install perl-DBD-MySQL -y

yum install perl-Time-HiRes -y

yum install perl-IO-Socket-SSL –y

yum install perl-TermReadKey.x86_64 -y

yum install perl-Digest-MD5 -y

  • 安装Percona XtraBackup

tar xvf percona-xtrabackup-2.4.7-Linux-x86_64.tar.gz

cd percona-xtrabackup-2.4.7-Linux-x86_64

cp bin/innobackupex /usr/bin

cp bin/xtrabackup* /usr/bin

  • 安装percona-toolkit

rpm -ivh percona-toolkit-2.2.16-1.noarch.rpm

  • 安装mysql

因为RDS是5.6版本,所以我们本地的mysql数据库要与RDS版本对应。

rpm -ivh http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm && yum -y install mysql-server mysql


3.数据恢复

  • 执行如下命令,恢复解压好的备份文件

innobackupex --defaults-file=/home/mysql/data/backup-my.cnf --user=root --apply-log /home/mysql/data

看到类似如下输出,显示 completed OK,表示执行成功

阿里云RDS数据恢复到本地MySQL数据库_第4张图片

  • 打开/home/mysql/data/backup-my.cnf,注释掉如下参数(阿里帮助文档只说注释掉三行,启动会失败)

阿里云RDS数据恢复到本地MySQL数据库_第5张图片

  • 修改文件夹所属用户为mysql

chown -R mysql:mysql /home/mysql/data

  • 启动mysql进程
mysqld_safe --defaults-file=/home/mysql/data/backup-my.cnf --user=mysql --datadir=/home/mysql/data &
  • 查看进程

ps aux|grep mysqld

这里写图片描述


4.登陆数据库

  • 登录mysql查看数据,默认密码为空

mysql -uroot

  • use命令后报如下信息

阿里云RDS数据恢复到本地MySQL数据库_第6张图片

使用-A参数,这样就不会预读库中表信息了,能提高连接库的速度.

mysql -uroot -A

  • 密码及远程登陆设置请参照此文设置

5.可能遇到的问题

  • 启动报如下异常

阿里云RDS数据恢复到本地MySQL数据库_第7张图片

解决方法:
执行删除命令:rm -rf /var/lib/mysql/ib*
删除:ibdata1、ib_logfile0、ib_logfile1文件
再次尝试启动mysql

你可能感兴趣的:(MySQL)