I have a bunch of *.frm, *.myd and *.myi files, which are a MySQL database store.

I need to extract the data kept in these files, but I do not have a MySQL database engine at my disposal.

Is there a tool or library, which can do this?

Please, do not suggest installing the database engine (be it MySQL or MariaDB or other MySQL forks). My question is specific about extracting the data without the full blown database engine. In essence, I am looking for an embedded database engine, which can be distributed with my code and which demands no installation.

I am not looking into doing complex queries, I just need to fetch all the data from one or two particular tables.



I am aware of http://dev.mysql.com/doc/refman/5.0/en/libmysqld.html, but I do not understand how to download it. What is the licensing for commercial usage? Should I download and install the full blown database to get hold on the libmysqld files (headers, lib + dll)? Even though I do not need the full database? In short, it creates more questions than answers. I am still looking for an advice.

closed as off-topic by Paul White, Philᵀᴹ, Taryn, Aaron Bertrand Jan 26 '15 at 14:40

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Shopping list question - questions about which tool, library, product or resource you should use are off-topic here because they quickly become obsolete and often are just about the preferences of the answerer. If you have an issue with or a question about a specific tool, please revise your question to conform to that scope." – Paul White, Philᵀᴹ, Taryn, Aaron Bertrand
If this question can be reworded to fit the rules in the help center, please edit the question.


If you are brave and a little fool-hearty, try this crazy idea:

Since myisamchk can read, write, and analyze MyISAM tables independent of mysqld, get a hold of the source code for myisamchk, take a look around and see if you can borrow any C/C++ code, algorithms, structures, classes, or just any ideas from it.

  • 1
    Thanks for the hint, but this is too extreme for me. +1 for the audacity, though. – mark Dec 29 '11 at 20:40

Maybe you should be looking at SQLite instead? You're kind of vaugue about where that data is coming from... if it's something you generated yourself, or if it's a on a server you've compromised and the DB is just too big to send over the wire and you only want certain columns from it. ;)

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