How To Restore Tables by Copying MyISAM Table Files

Q

How To Restore Tables by Copying MyISAM Table Files? - MySQL FAQs - Storage Engines: MyISAM, InnoDB and BDB

✍: FYIcenter.com

A

If you have old copies of MyISAM table files, you can restore them easily by copying them back to the data directory to replace the current table files. However you may need to shutdown MySQL server to do this, because the current table files might be locked on MySQL server. But this is not the recommended way to do backups. Read the backup FAQ collections for more details.

The following tutorial exercise shows you how to delete a data row, and restored it by copying back the table files:

>\mysql\bin\mysql -u dev -piyf fyi

mysql> DELETE FROM fyi_isam WHERE id = -1;
Query OK, 1 row affected (0.07 sec)

mysql> SELECT * FROM fyi_isam;
+----+-------+-------+
| id | title | count |
+----+-------+-------+
| -2 | NULL  |   987 |
+----+-------+-------+
1 row in set (0.00 sec)

mysql> quit;

>copy \mysql\backup\fyi\fyi_isam.* \mysql\data\fyi
\mysql\backup\fyi\fyi_isam.frm
\mysql\backup\fyi\fyi_isam.MYD
\mysql\backup\fyi\fyi_isam.MYI
        3 file(s) copied.

>\mysql\bin\mysql -u dev -piyf fyi

mysql> SELECT * FROM fyi_isam;
+----+-------+-------+
| id | title | count |
+----+-------+-------+
| -1 | NULL  |  NULL |
+----+-------+-------+
1 row in set (0.00 sec)

Looks like we restored one row (id=-1). But we also lost one row (id=-2). This will happen if your MySQL server is still running during the backup and storing processes.

2007-05-10, 4741👍, 0💬