• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

通过拷贝frm myd myi opt文件来实现mysql的备份和还原

mysql 搞代码 4年前 (2021-12-20) 38次浏览 已收录 0个评论

不知道大家有没有想过,我们向mysql数据库中写入了数据,这些数据存放在什么地方。在linux下手动编译安装过mysql的人,我想会知道存放在什么地方,mysql_install_db有这一步操作,他是产生mysql自带的数据库,执行了这一步操作后,你可以到/mysql安装目录/data(这个数据目录,可以从my.cnf中查到datadir) 目录下面就会出一个mysql的文件夹。

一,frm myd myi opt的解释

1,.frm保存的是描述了表的结构

2,.MYD保存的是表的数据记录

3,.MYI保存的是表的索引 

4,.opt保存的是数据库的字符集

[root@BlackGhost test]# ls |grep opt | xargs cat
default-character-set=utf8
default-collation=utf8_general_ci

二,备份数据库

创建一个数据库,create database test;这个时候去data目录下面看看,会产生一个test文件夹,里面只有一个db.opt文件,然后你在创建一些表,添加一些数据后,你在去data/test下面看看,里面多了一些.frm,.myd的文件

tar czvf /home/databak/test.tar.gz /usr/local/mysq/data/test

这样就备份好了

三,还原数据库

1,进入test数据库

use test;
show tables;

在这儿你会看到,你新增加的表。

2,删除data/test目录下面的frm,myd,myi这三种类型的文件

use test;
show tables;

这个时候,一张表都没有。

3,还原表

tar zxvf /home/databak/test.tar.gz -C /usr/local/mysq/data

4,在查看test的表

use test;
show tables;

这个时候,新增加的表又出来了。

如果是直接把data下面的test目录删除掉的话,就重新create database test;会产生一个新的test目录,然后在把备份的数据,还原过来就行了。个人觉得这种备份比较好,导出,导入比较麻烦,不用记得备份命令,只要会copy就行了。在不改变数据库配置的前提下,这种备份,还原基本上不会出现乱码的。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:通过拷贝frm myd myi opt文件来实现mysql的备份和还原
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址