二级考试MySQL数据库怎么用?mysql拷贝数据库库文件,复制还原后显示表不存在怎么办

来源:互联网 发布:知乎的用户数量 编辑:程序博客网 时间:2024/05/02 04:58

 

     问题环境,最近准备mysql考试,用的  **教育的题库,做操作题的时候发现把题库给的数据库文件复制data目录,能显示表,但是不能操作表

  1 查看mysql存放数据库文件的目录

 

 

2 将题库给的数据库文件复制到data目录下面,记得复制文件的时候应该退出mysql控制台,把MySQL服务关闭掉,复制之后,再开启mysql服务,

 

   Ps 可以在 我的电脑 -> 管理 –> 服务和应用程序,找到MySQL服务,也可在cmd控制台快速关闭和开启,在Windows左下角点击搜索输入cmd然后,右击选择用管理员身份打开

     

 

   然后输入,注意方框中是服务名称,有可能你给我的不一样,因为MySQL的版本可能不一样

 

 

   3 复制后发现有表却不能操作表,显示表不存在,明明上面显示有表呢

 

 

  4 但是我们去data目录却发现data目录多了几个文件

 

 

  5 错误提示文件 .err,前面是主机名,不同的主机文件名不一样,但后缀是一样的,,查看主机名,ipconfig/all

  

 

  6 我们用记事本打开,以err结尾的错误日志文件,提示的错误,其实也给出你解决的办法,提示说 innodb引擎不见了

 部分截图

 

 

  7 查看当前数据库的引擎

 

  

  8 发现默认的数据库引擎是innodb,当你建立表时若不指明数据库的引擎,那么他的默认引擎就是InnoDB,而错误里面提示了innodb不见了是什么了,百度了一下说,InnoDB与ibdata1文件有关,再百度了一下ibdata1是什么  http://blog.csdn.net/anljf/article/details/6653282

 

 

  9 对头,复制的数据库文件文件,里面只是数据库和表的结构,所示show的时候还是能看见的,但是select的时候就出问题了,因为数据存储在另外一个文件里面,就是ibdata1,所以当你备份数据库的时候不能只拷贝数据库文件,还得把ibdata1这个文件拷贝上,而当你恢复数据库的时候,也得把这两个文件都复制在data目录里面,当提示的时候选择替换掉原来的ibdata1文件

 

 

   Ps 非常重要的一点,作为IT人员最重要的就是备份,备份,再备份,但是今天还是失蹄了,练习写了一个小网页,用的就是mysql,最近也比较忙,所以做题库也就没有去虚拟机里面搞,就在物理机上面做,当我点击替换的时候,瞬间就醒悟了,有点gg思密达的感觉,虽然不知道错在哪里了,但是有种不祥的预感,回头去cmd控制台,select一看,我原来创建的表全都不能操作了,欲哭无泪,因为我们替换的ibdata1,文件是别人创建的表,保存的只是别人表的数据,并没有保存我们自己的数据,所以无论怎样,当要替换的时候,是不是应该把这个文件备份一下呢?

 

  11 知道怎么解决了把,就是把ibdatadb1文件复制到data目录替换,记得备份哟!!! 但是奇怪的是复制过去之后还是显示不存在

 

 

  12 当然是因为这三个文件了,这三个文件是在启动mysql服务和登录mysql的时候生成的,记录了一些重要的配置和信息,所以啊得把三个文件删掉,删掉之前应该把MySQL服务关闭掉,可以在 我的电脑 -> 管理 –> 服务和应用程序,找到MySQL服务

 

 

  13 然后重新启动,再操作 数据库就可以了

 

  学习之路漫长!

 

原创粉丝点击