1

The row (with type MEDIUMTEXT) has been accidentally updated with empty value. I can see previous data in MYD file of a table, but I can't get them neither from mysqldump or any mysql client. If I execute mysqlcheck -u root -p --auto-repair --check --optimize the MYD-file shrinks from 1688484 bytes to 449008 bytes.

Is there any way to export data from MYD or mark data as undeleted?

Version from dump is: MySQL dump 10.13 Distrib 5.1.37, for pc-solaris2.11 (i386)

2

1 Answer 1

1

Unfortunately the only way to recover your data is to recover them from a backup, you can import just that single table and then insert the particular row.

I will edit my answer to get more precise here, first of all you write that you use dynamic row length. This makes the recover operation way harder if not impossible compared to fixed row length. If you are seriously want to recover, I would suggest that you first of all get known to MyISAM dynmic data file layout, a good entry point would be here: MyISAM Dynamic Data File Layout. Therefore you have a chance that you can recover, but not with a tool which is written for fixed length files. Unfortunately I am not aware of such a tool (the ones i tested didn´t satisfied my requirements).

And btw, I think you will have heard or read that more than enough already, but i want to stress this out again: always backup, test the backups, rinse and repeat.

1

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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