0

This weekend, I updated a Windows 8 workstation to Windows 8.1. This was a development workstation that had a locally hosted MySQL 5.6 instance used for web development work.

After the update finished running, I discovered that the MySQL service was not started... and not only that, the service was completely gone. It no longer appeared in the "services" list.

All the binaries were still present where expected at C:\Program Files\MySQL\MySQL Server 5.6\bin, but the C:\Program Files\MySQL\MySQL Server 5.6\data folder looked suspiciously small... the ibdata1 file was less than 100 megs, and this workstation had gigs of data in it's InnoDB database tables.

Sure enough, once I manually fired up the MySQL server, it appeared to have been reset to a fresh MySQL installation. No data besides default databases (i.e., mysql, information_schema, performance_schema), and the only user was "root" with no password.

My first thought was to roll back to a system restore point prior to the update, but unfortunately it appears that System Restore was either off, or all the restore points were wiped out by the 8.1 upgrade.

I'm at a loss as to what would cause this. It's like the Windows 8.1 upgrade "reset" the MySQL installation. I've got the service installed and running again, but what about all the data? Is it just gone? It would have been nice to have a warning. Maybe this post will be nothing but a warning to others (obligatory reference), but I'm still hoping somebody can give me a clue how to recover my data...

2
  • 2
    Whatever happened, now it's time to restore from your backups. Dec 14, 2013 at 19:07
  • Yeah, I've already started down this path... I just find it rather shocking--I would never have guessed that Windows 8.0 -> 8.1 would blow away all your MySQL data!
    – Josh
    Dec 14, 2013 at 22:34

1 Answer 1

4

I can't explain why the service disappeared, but I did figure out what happened to the data.

Somehow, my my.ini file got completely wiped out. Once I got a copy of that file, I saw that the datadir value was set to C:/ProgramData/MySQL/MySQL Server 5.6/data\

This is not the default location of C:\Program Files\MySQL\MySQL Server 5.6\data. It is, however, the location setup by the MySQL installation.

So, a non-default datadir was setup (by the installer, not by user intervention) when MySQL was initially installed. Then, the Windows 8.1 upgrade wiped out the service and the my.ini file (which pointed to the non-default datadir), and thus when MySQL was restarted, it looked in the default directory, found nothing, and thus all the data appeared to be missing.

So, in summary, the solution was:

  1. Reinstall mysql service via mysqld --install
  2. Restore my.ini file. By the way, there was a copy of my.ini in C:\ProgramData\MySQL\MySQL Server 5.6\my.ini

Hope that helps someone else who runs into this same issue!

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