美文网首页
迁移 RDS for MySQL 数据到本地 MySQL

迁移 RDS for MySQL 数据到本地 MySQL

作者: 逗比punk | 来源:发表于2017-05-18 14:52 被阅读270次

    阿里云数据库 MySQL 版支持通过物理备份文件和逻辑备份文件两种途径将云上数据迁移到本地数据库。
    利用物理备份文件导出

    背景信息

    因为软件限制,目前数据恢复只支持在 Linux 系统下进行。如果您要恢复数据到 Windows 系统,可以先将数据恢复到 Linux 系统下,再将数据迁移到 Windows 系统。

    前提条件

    阿里云数据库使用开源软件 Xtrabackup 2.0.6 对 MySQL 数据库进行全量物理备份。用户需要下载该软件,并使用该软件进行数据恢复。Xtrabackup 官方网站为:http://www.percona.com/,请下载与您操作系统版本对应的 Xtrabackup 版本。

    yum -y install epel-release
    yum -y install percona-xtrabackup.x86_64
    
    操作步骤

    本例以本地服务器为 RHEL6/x64 系统,备份文件存储路径为 /home/mysql/ 为例。
    下载云数据库 物理备份文件 并上传至目标服务器。备份文件获取方法请参见 下载备份数据。如果目标服务器可以访问源实例,您也可以使用 wegt "url"
    下载备份文件。其中 url 为备份文件下载地址。

    RDS备份文件下载完毕后,我们需要对其进行解压。按照阿里云官方文档,我们需要下载阿里云专门的脚本进行解压,而且必须是在linux OS 64bit上使用。

    必须说明:RDS的备份文件只能在linux OS上进行的。在windows OS上使用第三方软件解压的话,你会发现看不到任何的文件。

    下载RDS解压脚本,使用如下命令:

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

    使用RDS解压脚本,解压RDS备份文件,如下:

    sh rds_backup_extract.sh -f /root/hins1035007_xtra_20160220031920.tar.gz -C /data

    解压完毕后,我们切换到/data目录下查看RDS备份解压的文件,如下:

    Paste_Image.png

    通过上图,可以很明显的看出,RDS是通过percona-Xtrabackup进行全量备份的。

    RDS解压完毕后,我们需要修改/data目录的所有者。如下:

    chown mysql:mysql -R /data/

    现在我们在/data目录下创建mysql的配置文件my.cnf,如下:

    vim /data/my.cnf

    [mysqld]
    datadir = /data/
    port = 3306
    server_id = 3
    socket = /data/mysqld.sock
    max_allowed_packet=32
    log-error = /data/error.log
    default-storage-engine=INNODB

    my.cnf文件创建完毕后,我们现在来启动mysql。

    注意:RDS备份数据库中的root用户是没有密码的,而且此时RDS备份数据库中只有root这一个用户。

    启动命令如下:

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

    或者

    /etc/init.d/mysql

    通过上图,我们可以很明显的看出mysql已经正常启动。现在我们再来测试,是否可以正常连接mysql。如下:

    mysql -h127.0.0.1 –uroot -p

    现在我们再来创建root用户密码,并赋予其连接权限。如下:

    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;
    

    注意:如果不想这么麻烦的话,我们可以直接跳过用户验证,使用如下命令:

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

    这样客户端在连接时,可以任意用户名和密码。

    注意:在此有两点和官方教程不一样的地方需要说明:
    1、没有安装percona-Xtrabackup数据恢复软件进行数据恢复
    2、数据库root用户是没有密码的

    相关文章

      网友评论

          本文标题:迁移 RDS for MySQL 数据到本地 MySQL

          本文链接:https://www.haomeiwen.com/subject/glusxxtx.html