参考自阿里云
恢复云数据库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
-
下载解压工具
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,表示执行成功
- 打开/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