Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am running Mysql5 on a Windows Xp machine on NTFS . I want to permanently delete a database containing sensitive data such that when the operating system is not active it is not possible to use raw disk editors and recovery tools to view and recover data that the operating system has deallocated(after dropping tables etc). How can I do this ?

share|improve this question
It sounds like you're saying you want to permanently delete a database, and still recover the data from it? – pavium Nov 14 '09 at 12:05
sorry for that...i forgot to add a "not" ... i want to permanently delete a database – iceman Nov 14 '09 at 12:34
up vote 0 down vote accepted

You can use SDelete, a free tool from Microsoft. This can either securely delete a file or cleanse all the free space on a partition.

If you want a GUI, Eraser is an alternative.

Judging from the MySQL documentation for InnoDB and MyISAM, the relevant files to delete are ibdata, *.IBD, and *.FRM for an InnoDB database, and the *.FRM, *.MYD, and *.MYI files for MyISAM.

share|improve this answer
sdelete is good.. does anyone know if Eraser is multi-threaded? i delete Mysql dbs using drop command. how to do this using sdelete? – iceman Nov 17 '09 at 11:58
Added the files to delete to the answer. – Stephen Jennings Nov 18 '09 at 0:08
thanks...sdelete is a great command line tool. – iceman Nov 18 '09 at 18:40

The only solution I know of is to overwrite all free space on the disk after the deletion.

Repeatedly copying small files till the disk is full, then deleting them would work.

As would have a script output '1' until the drive is full.

share|improve this answer
is there a software which can do this – iceman Nov 15 '09 at 16:53
not directly. I've written bash, batch, and C programs to do the above: while(true) echo 1; – warren Nov 16 '09 at 4:28

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .