本文适用阿里云的RDS版本为mysql5.6数据库。阿里云官网给出了相关的操作教程:恢复云数据库MySQL的备份文件到自建数据库。看了官网的教程,感觉很是麻烦,而且实际操作过程中新手很容易碰到各种报错,还不容易解决,为此从网上找到更加简单易行恢复方法,本人已测试确实可行。
1.准备本地环境
首先准备一个64位的linux系统(本人测试使用的是CentOS 6.5),官网说window环境不行,我也没测试到底行不。然后配置好yum环境,最后安装mysql的5.6版本,因为RDS是5.6版本,所以我们本地的mysql数据库要与RDS版本最好一样,防止其他意外,这里使用yum方式快速安装,可参考:Linux平台安装mysql(源码编译)5.5.59
rpm -ivh http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm yum -y install mysql-server mysql
2.下载解压RDS备份
登陆RDS管理页面的备份恢复页面下载物理备份,可以通过内网地址下载也可以直接下载,下载好后上传到本地linux里的root目录。按照官方文档需要下载阿里云专门的脚本进行解压,然后将数据解压到data目录,修改data目录的所有者。
wget http://oss.aliyuncs.com/aliyunecs/rds_backup_extract.sh mkdir /data sh rds_backup_extract.sh -f /root/bak.tar.gz -C /data ls -l /data chown mysql:mysql -R /data/
3.增加配置文件
在/data目录下创建mysql的配置文件my.cnf,内容如下:
vim /data/my.cnf [mysqld] datadir = /data/ port = 3306 server_id = 1 socket = /data/mysqld.sock max_allowed_packet=32M log-error = /data/error.log default-storage-engine=INNODB
4.启动mysql
my.cnf文件创建完毕后,我们现在来启动mysql。注意:RDS备份数据库中只有root这一个用户且没有密码,所以无需输入密码直接按回车进入。
/usr/bin/mysqld_safe --defaults-file=/data/my.cnf & mysql -h127.0.0.1 -uroot -p
5.修改所有root密码、设置允许远程登陆
创建root用户密码,并赋予其他主机其连接权限。这样操作完毕后,可以使用其他客户端连接mysql了。
use mysql; update user set password=password('123456') where user='root'; update user set host='%' where user='root' && host='127.0.0.1'; flush privileges;