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

这个问题已经困扰很久了,终于解决了,把过程写下来,可能仅仅方便自己记录

1、要有个Linux操作系统,我使用的是CentOs 7

2、在阿里云的rds中下载备份文件,hins开头的tar.gz文件。

3、开始centos的操作

yum upgrade

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

下载解压工具

wget http://oss.aliyuncs.com/aliyunecs/rds_backup_extract.sh

解压数据库

sh rds_backup_extract.sh -f /root/hins*.tar.gz -C /data

修改数据库目录的所属用户

chown mysql:mysql -R /data/

建立mysql启动的配置文件

vim /data/my.cnf

[mysqld]

datadir = /data/

port = 3306

server_id = 3

socket = /data/mysqld.sock

max_allowed_packet=32M

log-error = /data/error.log

default-storage-engine=INNODB

保存

恢复的数据库root账号是没有密码的,为空,启动数据库

/usr/bin/mysqld_safe –-defaults-file=/data/my.cnf &

链接数据库

mysql -h127.0.0.1 –uroot -p

直接回车。。恢复成功了

 

阿里云的方法 安装XtraBackup

yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
yum install percona-xtrabackup-24


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

清理用户表,阿里云写的也不对啊

delete from mysql.db where user <> ‘root’ and char_length(user) > 0;

delete from mysql.tables_priv where user <> ‘root’ and char_length(user) > 0;

flush privileges;

mysql_upgrade

修改配置文件中的sock

发表评论

电子邮件地址不会被公开。 必填项已用*标注