Je klikt op Start bij MySQL in het XAMPP-configuratiescherm, het lampje wordt groen… en een seconde later weer rood. Of je krijgt gewoon niks, geen foutmelding, geen uitleg. Herkenbaar? Dan zit je met het meest voorkomende XAMPP-probleem op Windows: MySQL start niet. En nee, opnieuw installeren is bijna nooit de oplossing. In 9 van de 10 gevallen is het iets suf als een bezette poort of een half opgestarte service.
Ik heb dit zelf tientallen keren meegemaakt op laptops van klanten en op mijn eigen dev-machine. De frustratie zit hem niet in de complexiteit, maar in het feit dat XAMPP je amper vertelt wát er misgaat. Hieronder de stappen die écht werken, in volgorde van waarschijnlijkheid.
Stap 1: kijk in de error-log in plaats van te gokken
De meeste mensen beginnen met willekeurig klikken. Doe dat niet. Ga naar C:xamppmysqldatamysql_error.log en open dat bestand met Kladblok. Onderaan staat de laatste fout. Zie je “Do you already have another mysqld server running on port 3306?” dan weet je exact waar je moet zoeken. Zie je “InnoDB: … corrupt” dan is je datamap beschadigd. Die log vertelt je in één blik wat er aan de hand is, en dat bespaart je een uur blind prutsen. Wie eerst de log leest, verliest nooit tijd aan giswerk.
Stap 2: poort 3306 is bijna altijd de boosdoener
MySQL gebruikt standaard poort 3306. Als een ander programma die poort al bezet houdt, kan XAMPP MySQL niet starten, punt. Klassieke kandidaten: een losse MySQL- of MariaDB-installatie op je systeem, Skype (op sommige oude versies), Docker containers, of een tweede XAMPP-versie die nog ergens in de achtergrond draait.
Check het zo: open CMD als administrator en tik netstat -ano | findstr :3306. Krijg je een regel met een PID terug? Dan is de poort bezet. Zoek die PID op in Taakbeheer (tabblad Details) en sluit het proces. Simpele oplossing die vaak vergeten wordt: draai gewoon mysqld –port=3307 via de config, of pas de poort aan in C:xamppmysqlbinmy.ini. Werkt direct.
Stap 3: een losse Windows-service die je niet ziet
Dit is een valkuil waar veel mensen uren op stuklopen. Bij een eerdere installatie is MySQL als Windows-service geïnstalleerd, los van XAMPP. Die service start automatisch bij het opstarten van Windows en blokkeert vervolgens jouw XAMPP-instantie. Je ziet hem niet in het XAMPP-paneel, maar hij draait wel.
Druk op Windows-toets + R, tik services.msc en zoek naar “MySQL” of “MariaDB”. Staat die op Automatisch? Zet hem op Handmatig en stop de service. Start daarna XAMPP opnieuw op. Dit lost het probleem in de meeste gevallen in dertig seconden op.
Stap 4: draai XAMPP als administrator
Klinkt suf, is het niet. Zonder verhoogde rechten kan XAMPP op moderne Windows-versies (10 en 11) de service niet aansturen en de logbestanden niet wegschrijven. Rechtsklik op xampp-control.exe en kies Als administrator uitvoeren. Als het dan ineens wél werkt, weet je dat je dit voortaan standaard moet doen. Zet eventueel een snelkoppeling met adminrechten in je taakbalk.
Stap 5: corrupte InnoDB-bestanden herstellen
Kreeg je in de log iets met “Tablespace is missing” of “InnoDB corruption”? Dan is je datamap beschadigd, meestal door een harde afsluiting of stroomuitval. Dit is vervelender, want je kunt data verliezen. Wat je doet: stop XAMPP volledig, ga naar C:xamppmysqldata en hernoem ibdata1, ib_logfile0 en ib_logfile1 naar iets als ibdata1.oud. Start MySQL opnieuw.
Let op: hiermee reset je de InnoDB-omgeving. Je eigen databases in submappen blijven meestal staan, maar de systeemtabel mysql wordt opnieuw opgebouwd, dus gebruikersrechten ben je kwijt. Heb je geen backup, probeer dan eerst met een tool als innodb_force_recovery in de my.ini (waarde 1 tot 6) om de data nog te dumpen. Defensieve aanpak wint hier altijd van “gewoon deleten”.
Stap 6: firewall en antivirus
Windows Defender, Avast, Bitdefender en ESET blokkeren af en toe de mysqld-proces zonder duidelijke melding. Voeg een uitzondering toe voor de volledige map C:xampp en voor mysqld.exe. Zet ook de firewall-regel aan voor inkomend verkeer op poort 3306 als je lokaal vanaf een ander apparaat verbinding maakt. Voor puur lokaal ontwikkelen op localhost is dit zelden nodig, maar zodra je vanaf een telefoon test wel.
Stap 7: my.ini nakijken op typefouten
Heb je ooit de config aangepast? Eén ontbrekende puntkomma of een verkeerd pad en MySQL weigert te starten zonder duidelijke melding. Open my.ini, controleer of datadir en basedir het juiste pad hebben en of port klopt. Twijfel je? Hernoem je aangepaste bestand en laat XAMPP een verse config genereren via het knopje Config > my.ini > Reset.
Laatste redmiddel (en wanneer je écht moet herinstalleren)
Werkt niets van het bovenstaande? Herstart je pc volledig — niet sluimerstand, niet snelstart, maar echt opnieuw opstarten. Windows laat soms processen hangen die poorten vasthouden. Daarna: start XAMPP opnieuw als admin.
Mijn eerlijke mening: als je dit alles hebt geprobeerd en MySQL weigert nog steeds, is je XAMPP-installatie simpelweg verrot. Dan is een verse installatie sneller dan blijven zoeken. Exporteer eerst wat je nog kunt via phpMyAdmin (als die nog draait), verwijder de map, installeer opnieuw. Niet elegant, wel efficiënt.
Onthoud dit: XAMPP MySQL start niet is bijna nooit een mysterieus probleem. Het is poort 3306, een spookservice of een corrupt bestand. Kijk in de log, volg de stappen, en je draait binnen een kwartier weer.