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

  • Post author:
  • Post category:mysql


参考自阿里云

恢复云数据库MySQL的备份文件到自建数据库

, 本文补全了工具下载及安装过程,以及踩过的一些坑

1.工具下载

  • RDS MySQL 使用开源软件

    percona-Xtrabackup

    对MySQL 数据库进行备份。需要下载该软件,然后使用该软件进行恢复。

这里写图片描述

这里写图片描述

这里写图片描述


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


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,表示执行成功

这里写图片描述

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

这里写图片描述

  • 修改文件夹所属用户为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命令后报如下信息

这里写图片描述

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

mysql -uroot -A


5.可能遇到的问题

  • 启动报如下异常

这里写图片描述

解决方法:

执行删除命令:rm -rf /var/lib/mysql/ib*

删除:ibdata1、ib_logfile0、ib_logfile1文件

再次尝试启动mysql



版权声明:本文为liudihedy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。