zoukankan      html  css  js  c++  java
  • 用复制mysql/data 文件夹 下面的数据库的形式来复制数据库出现的问题

    用复制mysql/data 文件夹 下面的数据库的形式来复制数据库出现的问题

    提示找不到表,我去看了一下,丢失了很多个表;

    问题:

    直接拷贝data下的数据库数据进行备份 , 发现部分数据表不见了。

    原因 :

    以表“Table”为例: 如类型是MyISAM, 数据文件则以”Table.frm”,”Table.MYD”,”Table.MYI”三个文件存储于”/data/databasename/”目录中. 如类型是InnoDB, 数据文件则存储在”/data/″中的ibdata1文件中(一般情况),结构文件存在于Table.frm中. MySQL的数据库文件直接复制便可以使用,但是那是指“MyISAM”类型的表。 而使用MySQL-Front直接创建表,默认是“InnoDB”类型,这种类型的一个表在磁盘上只对应一个“*.frm”文件,不像MyISAM那样还“*.MYD,*.MYI”文件。 MyISAM类型的表直接拷到另一个数据库就可以直接使用,但是InnoDB类型的表却不行。

    解决方法就是:

    同时拷贝innodb数据库表“*.frm”文件和innodb数据“ibdata1”文件到合适的位置。启动MySQL的Windows服务 由于MySQL这样数据混杂的形式, 往往很容易让使用者在备份时忘记了备份InnoDB, 从而导致了上述错误。

    如果还是有问题,停止mysql服务,将目录下的ib_logfile*文件全部删除掉,重新启动mysql服务。

    总结:

    1,在进行mysql数据库备份的或迁移的时候,尽量备份完成所需要的数据;

    2,如果直接拷贝原有数据库文件"*.frm"、"*.MYD"、"*.MYI"等文件时候,如果原数据库引擎是InnoDB,切记还需拷贝ibdata1文件

    3,备份数据库的时候,最好是用相关的工具进行备份或是导出sql文件,以免浪费时间在数据库恢复上

    4,msyql版本或是备份工具的版本不同,也可能引起数据恢复有问题。

  • 相关阅读:
    C# 中数组、ArrayList、List<T> 区别
    启动SourceNavigator出错(问题解决)
    (转)SlickEdit软件使用
    ubuntu操作记录
    ubuntu下安装Source Insight
    Android中对于没有Looper的类,要使用Toast的问题
    (转)ubuntu下安装source navigator
    (转)深入理解之 Android Handler(相当好!!!)
    Git常用命令及思维导图
    (转)android的消息处理机制(图+源码分析)——Looper,Handler,Message
  • 原文地址:https://www.cnblogs.com/as3lib/p/6735112.html
Copyright © 2011-2022 走看看