• linux服务器MySQL数据从磁盘拷贝以及恢复


    偶有感触:遇到这个问题,经过一个下午的排查, 终于解决。 

    故事情节:我的阿里云服务器突然被黑客攻击了,整个系统down了。 找客服,他们排查说usr目录的文件全部丢失。让我重新初始化系统盘。初始化之前先生成一个快照。还好生成了快照,让事情没有发展为不可挽救的地步。

    mysql数据库数据恢复。

    其他的问题都一一解决了。 到了最后, mysql上的数据无论如何都不能正常显示出来。数据库不要紧(有备份), 之前的数据才是最要紧的。

    这就是本文的目的。 最终如何将mysql数据显示出来。

    --------------------------------------------------------------------

    首先:快照生成的磁盘挂载到了/mnt目录下. mysql的数据库文件目录是/var/lib/mysql. 挂载到/mnt下的原mysql数据库文件目录就是/mnt/var/lib/mysql

    想要恢复mysql中的rap_db数据. 并且恢复数据. 我的做法如下:

    1. 将rap_db的表结构创建好. 可以在Navicat客户端生成.

    2. 将/var/lib/mysql下的ibdata1文件删除

    3. 将/mnt/var/lib/mysql下的ibdata1拷贝到/var/lib/mysql下. 

    注: 我们数据库实际的数据都是放在ibdata1下的, 所以这个文件很重要

    4. 一定要注意修改文件的权限

      chown mysql:mysql ibdata1

    -----------------------------------------------------------------------------------

    以上是我的做法. 但是,我觉得直接将/mnt/var/lib/mysql文件夹下的rap_db文件夹和ibdata1文件一起拷贝到/var/lib/mysql下应该也能成功. 

    最后别忘了修改文件夹和文件的权限. 

    这个方法我没有测试, 上面的方法亲测有效.

  • 相关阅读:
    逆向随笔
    Test for Required Behavior, Not Incidental Behavior
    Volley 解析
    使用Apache JMeter压測Thrift
    hdu 5289 Assignment(给一个数组,求有多少个区间,满足区间内的最大值和最小值之差小于k)
    ORACLE 11G在存储过程里面遍历游标, 调用job任务定时运行
    Netlink 内核实现分析(二):通信
    6.3 cmath--数学函数
    CodeChef Little Elephant and Mouses [DP]
    BZOJ 1758: [Wc2010]重建计划 [暂时放弃]
  • 原文地址:https://www.cnblogs.com/ITPower/p/8678301.html
Copyright © 2020-2023  润新知