I want to read .frm and .ibd files in mysql to understand how mysql database engine store data in files. Which format those file does have, since when I open those files it show non-human readable characters.

closed as too broad by mustaccio, Max Vernon, LowlyDBA, Marco, Julien Vavasseur Jan 9 '17 at 16:24

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • What have you done already? You could always read the source code - or, if these are the only files you have, Google "restore mysql database from ibdata and .frm files". – Vérace Jul 14 '16 at 3:49
  • these files are read by MySQL and aren't available in human readable form – Nawaz Sohail Jul 14 '16 at 8:39
  • At some level, you just need to know the B+Tree structure that is used -- it is the same for table (data + PRIMARY KEY) and each secondary index. – Rick James Jul 15 '16 at 17:56
  • Possible duplicate of MySQL: how to restore table stored in a .frm and a .ibd file? – T.Todua Jan 6 '17 at 17:45

Jeremy Cole in a series of posts explains InnoDB internals and on disk format in particular. I'd start from https://blog.jcole.us/2013/01/02/on-learning-innodb-a-journey-to-the-core/ . Get his tool innodb_ruby, it's very helpful in the learning.

Not the answer you're looking for? Browse other questions tagged or ask your own question.