If you're unable to run MySQL through XAMPP Control Panel, first thing to do, is to check error log file. If you find entry saying, that table
./mysql/db (or similar) is marked as crashed and should be repaired then you may find some help in this article.
XAMPP Control Panel 3.1.0 (from XAMPP 1.8.1) reports something like this, after you hit
[mysql] Status change detected: running
[mysql] Status change detected: stopped
[mysql] Error: MySQL shutdown unexpectedly.
First, as always, check
c:\XAMPP\mysql\data\mysql_error.log (adjust path according to your operating system and XAMPP installation path). If you find
Fatal error: Can't open and lock privilege tables: Table '.mysqldb' is marked as crashed and should be repaired around end of this file, then... one of your tables must be repaired.
You can use
myisamchk tool with
-r flag for this purpose. Execute:
C:\XAMPP\mysql\bin\myisamchk -r c:\XAMPP\mysql\data\mysql\db.MYI
from your console. Again, adjust paths to your environment.
As a result, you should see something like this:
recovering (with sort) MyISAM-table 'c:\XAMPP\mysql\data\mysql\db.MYI'
Data records: 4
Fixing index 1
Fixing index 2
Data records: 6
After that all your problems should be gone.
I won't discuss here, what can cause situation like this, as you'll find more information about this in following links. Note only, that it can happen in any situation, especially if you don't expect it, even during normal every-day usage of your development environment.
Some links, if you need more information or if above does not solve your problems:
- thread "MySQL is not running" at cPanel Forums,
- topic "MySQL Table is Marked as Crashed and Should be Repaired" in Atlassian's Confluence Knowledge Base,
- chapter 7.6.3, "How to Repair MyISAM Tables" in MySQL 5.0 Manual,
- question "Table is marked as crashed and should be repaired" at Database Administrators Stack Exchange,
- article "How to Repair a Crashed MySQL Table" at Ring of Saturn Internetworking,
- article "How To Repair Corrupted MySQL Tables Using myisamchk" at The Geek Stuff blog.
Happy reparing! :>