1、先从RDS下载实例备份到本地

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

下载外网和内网根据你实际的需求环境来。同个内网服务器下载就少点下载流量花费。

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

2、解压备份文件
执行如下命令,下载数据备份文件。

wget -c '<数据备份文件外网下载地址>' -O <自定义文件名>.tar.gz
参数说明:

-c:启用断点续传模式。

-O:将下载的结果保存为指定的文件(使用URL中包含的文件名后缀 .tar.gz 或者 .xb.gz)。

说明:若提示显示100%进度,则表示文件下载完成。

将下载的数据备份恢复到本地MySQL数据库中,具体操作步骤如下。

执行如下命令,解压已下载的数据备份文件。

说明:本文以自定义路径/data/mysql/data/为例,您可以根据实际情况将其替换成实际路径。

目前备份集文件有2种格式,一种是 tar 压缩包 (.tar.gz 后缀),一种是 xbstream 压缩包 (.xb.gz后缀)

对于 tar 压缩包(.tar.gz),使用命令:

tar -izxvf <数据备份文件名>.tar.gz -C /data/mysql/data/

对于 xbstream 压缩包(.xb.gz),使用命令:

gzip -d -c <数据备份文件名>.xb.gz | xbstream -x -v -C /data/mysql/data/

参数说明:

-C:指定文件要解压到的目录。可选参数,若不指定就解压到当前目录。
执行如下命令,查询解压后生成的文件。

ls -l /data/mysql/data/
命令执行成功后,系统会返回如下结果,其中蓝色字体为生成备份文件时RDS实例所包含的数据库。
阿里云RDS恢复数据到本地上_第3张图片

执行如下命令,恢复解压好的备份文件。
恢复第一步:应用日志
innobackupex --defaults-file=/data/mysql/data/backup-my.cnf --apply-log /data/mysql/data
若系统返回如下类似结果,则说明备份文件已成功恢复到本地数据库。
阿里云RDS恢复数据到本地上
恢复成功

(注意:若和恢复第一步不是同个目录/data/mysql/data,就要执行恢复第二步)
恢复第二步:拷贝文件到MySQL datadir
innobackupex --defaults-file=/data/mysql/data/backup-my.cnf --copy-back /data/mysql/data

提示没有innobackupex,安装下xtrabackup就可
yum install xtrabackup

3、相关参数加入到my.cnf并启动MySQL操作
把/data/mysql/data/里的backup-my.cnf
innodb_data_file_path=ibdata1:200M:autoextend
innodb_log_files_in_group=2
innodb_log_file_size=1572864000
三项参数内容添加到/etc/my.cnf 下
阿里云RDS恢复数据到本地上_第4张图片

执行如下命令,修改文件属主,并确定文件所属为MySQL用户。

chown -R mysql:mysql /data/mysql/data
执行如下命令,启动MySQL进程。
/etc/init.d/mysqld start

进入数据库
mysql -uroot -p

密码是你转的数据库的账号密码

若不知道密码需要跳过密码可以用 skip-grant-tables 添加在[mysqld]下,重启MySQL进去更改密码
update user set password=password('111111') where user='root' ;

更改完毕,记得注释掉skip-grant-tables,重启MySQL。