如何用C语言操作.MYD文件?

time_is_life 2013-06-01 06:53:08
如何用C语言来读取.MYD文件?
好像需要一个知道一个struct,就可以用fread来读取出来。
可是到哪里去找这个struct那?
有人知道吗?谢谢。
...全文
202 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
time_is_life 2013-06-04
  • 打赏
  • 举报
回复
数据已删,无备份,无binlog, 没有办法了,逼上梁山。
WWWWA 2013-06-03
  • 打赏
  • 举报
回复
比较困难,还是多备份吧
rucypli 2013-06-02
  • 打赏
  • 举报
回复
这个好难。。。。
time_is_life 2013-06-02
  • 打赏
  • 举报
回复
谢谢楼上,看了源代码,很复杂,一时还搞不定。 我用delete语句误删了表里的数据,没有启动binlog,没有备份。 所以想从MRD文件中把数据恢复出来。 我再慢慢研究一下源代码吧。估计要很久才能写出读取的程序。
ACMAIN_CHM 2013-06-01
  • 打赏
  • 举报
回复
22.3.1. Layout of the Record Storage Frame (Record Part, Record Block) MI_MIN_BLOCK_LENGTH 20 /* 20 bytes are required for the biggest frame type: Deleted block. */ MI_MAX_BLOCK_LENGTH 16777212 /* 16MB - 4, max 3 bytes for length available, 4-byte aligned. */ MI_DYN_ALIGN_SIZE 4 /* Frames start a 4-byte boundaries. */ Part header[0] (decimal/hexadecimal, one byte): 0/00: Deleted block block_len 3 bytes [1-3] next_filepos 8 bytes [4-11] prev_filepos 8 bytes [12-19] => header length 20 1/01: Full small record, full block rec_len,data_len,block_len 2 bytes [1-2] => header length 3 2/02: Full big record, full block rec_len,data_len,block_len 3 bytes [1-3] => header length 4 3/03: Full small record, unused space rec_len,data_len 2 bytes [1-2] unused_len 1 byte [3] => header length 4 4/04: Full big record, unused space rec_len,data_len 3 bytes [1-3] unused_len 1 byte [4] => header length 5 5/05: Start small record rec_len 2 bytes [1-2] data_len,block_len 2 bytes [3-4] next_filepos 8 bytes [5-12] => header length 13 6/06: Start big record rec_len 3 bytes [1-3] data_len,block_len 3 bytes [4-6] next_filepos 8 bytes [7-14] => header length 15 7/07: End small record, full block data_len,block_len 2 bytes [1-2] => header length 3 8/08: End big record, full block data_len,block_len 3 bytes [1-3] => header length 4 9/09: End small record, unused space data_len 2 bytes [1-2] unused_len 1 byte [3] => header length 4 10/0A: End big record, unused space data_len 3 bytes [1-3] unused_len 1 byte [4] => header length 5 11/0B: Continue small record data_len,block_len 2 bytes [1-2] next_filepos 8 bytes [3-10] => header length 11 12/0C: Continue big record data_len,block_len 3 bytes [1-3] next_filepos 8 bytes [4-11] => header length 12 13/0D: Start giant record rec_len 4 bytes [1-4] data_len,block_len 3 bytes [5-7] next_filepos 8 bytes [8-15] => header length 16
ACMAIN_CHM 2013-06-01
  • 打赏
  • 举报
回复
这个需要下载MYISAM存储引擎的源代码来分析了。其中有具体的物理文件结构说明。但估计看过的人不多。

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧