美文网首页
记一次从阿里云rds到windows本地mysql的数据恢复

记一次从阿里云rds到windows本地mysql的数据恢复

作者: 宅本初 | 来源:发表于2018-09-30 14:38 被阅读0次

    推荐给使用阿里云rds但想恢复的数据比较大没办法在linux下恢复的同学看(身为小白百度后解决的我深知会与不会懂与不懂的区别,懂的大神一句话可能已经涵盖的很全但是不懂的人听了很可能一脸懵逼,所以我写东西都是很傻瓜式的东西)

    (我这次恢复的情况是在有数据结构的情况下回复的)

    官方教程是在linux下进行的数据恢复,但是我的备份解压的话有125g所以我选择了在Windows本地进行恢复,首先从阿里云将备份下载

    备份下载截图 下载下来的文件

    .tar文件可以直接用winRAR(下个3.x版本之后的应该就可以)可以直接解压

    然后会得到一个

    .tar截图

    看到这里不要蒙逼,后缀改成.zip继续解压

    上面所显示的就是备份数据库里的各个表格了,当然如果像我一样很大的话只需要单独找到需要恢复的库进行解压就好了

    解压后如图

    到这里要稍微科普一下ibd是MySQL数据文件、索引文件,无法直接读取, frm是表结构文件;

    当我要尝试进行恢复的时候发现。。。这台电脑没装mysql服务emmmmmm........

    再顺便扔一下windows下mysql的安装好了

    window5.7.23下载,首先去https://dev.mysql.com/downloads/mysql/下载一下吧

    如果你看不懂英文用个谷歌浏览器吧自动翻译的 寻找之前的版本 这个不用解释啥意思了吧对号入座

    之后配置环境变量

    解压mysql-5.7.23-winx64后

    新建一个my.ini并输入以下(新建个txt修改后缀格式就好)

    [mysqld]

    port = 3306

    basedir=E:/mysql/mysql-5.7.23-winx64

    datadir=E:/mysql/mysql-5.7.23-winx64/data

    max_connections=200

    character-set-server=utf8

    default-storage-engine=INNODB

    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

    [mysql]

    default-character-set=utf8

    一定要注意basedir和datadir的目录不要搞错

    首先要记得的一点是一定要去到c盘里找到cmd右键管理员身份运行不然会因为权限问题卡住的

    流程是首先是cd到解压目录的\bin文件夹

    然后运行mysqld -install(如果提示mysqld不是内部或外部命令要去看一下环境变量是否设置错了)

    执行mysqld --initialize-insecure --user=mysql命令初始化

    扔一张别人的吧

    成功后,会生成data目录并生成root用户

    之后你的解压目录就变成这个样子了

    继续执行net start mysql命令启动MySQL服务。

    如果报一些错误例如

    大家可以到这里去看到底是什么问题(这里就具体问题具体分析了不过按照我的傻瓜教程应该不会有问题的)

    一看这么多错误大家就能知道我是摔坑小能手了吧

    启动成功后,执行"mysqladmin -u root -p password 新密码"命令设置密码,root旧密码为空,直接回车就可以

    再扔张别人的 美滋滋之后就开始恢复数据吧(至于Navicat数据库管理工具大家自行百度吧)

    在这里给大家一些数据库基本操作命令

    mysql -hlocalhost -u***** -p**** //进入本地数据库

    show databases; //展示数据库

    use ***;  //****:数据库名字  进入某个数据库

    show tables;//展示表

    首先建一个跟需要恢复的库名字一样的库比如我是tank_37

    然后如下图

    建表等一系列操作

    这时我们会看到库里多了如下

    然后执行命令ALTER TABLE <table_name> DISCARD TABLESPACE;

    执行这条 sql 后,物理文件<table_name>.ibd 会直接删除 然后将备份中的<table_name>.ibd拷贝进去

    然后执行ALTER TABLE <table_name> IMPORT TABLESPACE;

    作为采坑大王的我遇到了如下错误

    这是由于mysql 5.6的文件恢复到mysql 5.7版本导致的错误,需要在建表语句后面添加ROW_FORMAT=COMPACT,如下所示:
    再次执行命令就成功了

    这时我们回到Navicat去看

    恩喜滋滋

    到此整篇文章就结束了,希望能给大家带来帮助!ε=(´ο`*)))唉~生活还在继续都是为了努力活下去啊~~~

    相关文章

      网友评论

          本文标题:记一次从阿里云rds到windows本地mysql的数据恢复

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