mysql 直接从date 文件夹备份表,还原数据库之后提示 table doesn`t exist的原因和解决方法

转载 2015年07月07日 13:53:04

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


MyISAM类型的表直接拷到另一个数据库就可以直接使用,但是InnoDB类型的表却不行。解决方法就是:

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

意思就是说在数据库引擎类型InnoDB时拷贝数据文件的同时还需要拷贝ibdata1,于是把ibdata1也拷贝过去覆盖,发现还是有点问题,于是停止mysql服务,将目录下的ib_logfile*文件全部删除掉,重新启动mysql服务,well done,可以了

高兴啊,于是稍微总结了,希望以后遇到相同的问题,能够快速解决。

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

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

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

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

实践证明以上问题是存在的,解决方案是可行的,哈哈,为了以后方便,写了这篇博客随笔,希望大牛看到了不要鄙视,欢迎拍砖。

 

 

 

1:MyISAM类型的数据文件可以在不同操作系统中COPY,这点很重要,布署的时候方便点。(只需要拷贝 数据库名字文件夹下面的文件,这样数据库就拷贝完了)

2:  InnoDB类型的 要注意多拷贝 ibdata1 , 最好不要是直接复制文件夹,而是应该用sql导入导出


Mysql的“Table 'mysql.servers' doesn't exist”的解决方法

安装MYSQL后,又一次系统出现问题了,于是我查看mysql的错误日志,竟发现Table 'mysql.servers' doesn't exist问题的错误, 虽然与我的问题无关,但这个问题还是引...
  • rrr4578
  • rrr4578
  • 2014年10月28日 15:34
  • 3048

mysql新建表时提示Table 'db.table' doesn't exist解决方法

原因: 以表”Table”为例: 如类型是MyISAM, 数据文件则以”Table.frm””Table.MYD””Table.MYI””三个文件存储于”/data/$databasename/”...
  • dihuangtian01
  • dihuangtian01
  • 2016年06月28日 09:38
  • 6020

mysql 1045 错误

[mysqld] skip-grant-tables     //用于解除权限登录 mysqld-nt --skip-grant-tables select host,user,pa...
  • ZuoZhiHen
  • ZuoZhiHen
  • 2017年07月25日 15:15
  • 137

MySQL数据库(表)的导入导出(备份和还原) mysql 根据一张表数据更新另一张表

mysql 根据一张表数据更新另一张表 sql示例 update a  ,b  set  a.name = b.name  where  a.id = b.id ...
  • haluoluo211
  • haluoluo211
  • 2016年08月29日 18:06
  • 3779

MySql - 导入数据时 Table XXX doesn't exist 的解决

数据表为Innodb引擎 data文件夹中存在数据表的frm文件,但在phpmyadmin中看不到这些表,于是采用导入sql文件的方式进行恢复 1、直接导入原数据表的sql文件,原frm文件不删除...
  • w6611415
  • w6611415
  • 2012年03月30日 23:26
  • 15620

Mysql的“Table 'mysql.servers' doesn't exist”的解决方法

安装MYSQL后,又一次系统出现问题了,于是我查看mysql的错误日志,竟发现Table mysql.servers doesnt exist问题的错误,虽然与我的问题无关,但这个问题还是引起我的注意...
  • kanon_lgt
  • kanon_lgt
  • 2010年03月12日 08:57
  • 50745

mysql 如何恢复数据?

问题:尝试还原数据库,之后提示 table doesn`t exist。分析:类型:MyISAM 数据:Table.frm,Table.MYD,Table.MYI 位置:/data/$databa...
  • Time888
  • Time888
  • 2017年12月21日 14:47
  • 70

MySQL中数据备份或转移后出现“使用中”和"doesn’t exist"解决办法

MySQL中数据备份中一个重要的问题. 错误表现:运行页面时显示 Table “xxx” doesn’t exist. phpMyAdmin中存在的表显示”使用中(in use)”, 无法对表进行操作...
  • dongdongzzcs
  • dongdongzzcs
  • 2010年01月10日 00:02
  • 3918

mysql 提示表不存在的解决方法error: 1146: Table doesn't exist

直接拷贝数据库导致提示表不存在的解决方法 电脑重装系统后把原来的mysql data复制进去后大部分表是可以访问的,但是有几个表提示表不存在: error: 1146: Table 'a_co...
  • e_wsq
  • e_wsq
  • 2017年03月19日 21:27
  • 11755

使用navicat连接数据库时显示1146-table 'mysql.proc' doesn't exist,这个怎么解决

0 数据库的系统表丢失了。 1 考虑以下几种处理方式: a. 从其它相同版本的mysql数据库导出个proc的数据通过命令行导入进去; b. 或者拷贝下data/mysql/proc.frm, pr...
  • u014470581
  • u014470581
  • 2016年12月04日 14:20
  • 6086
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mysql 直接从date 文件夹备份表,还原数据库之后提示 table doesn`t exist的原因和解决方法
举报原因:
原因补充:

(最多只允许输入30个字)