Soluciones Xampp

XAMPP MySQL start niet op? Dit is de oplossing in 2026

Je klikt op Start in het XAMPP Control Panel, Apache springt groen, maar MySQL blijft grijs of floept direct terug naar rood. Herkenbaar? Dit is het meest voorkomende XAMPP-probleem op Windows en bijna altijd komt het door één van drie dingen: een poortconflict, een service die niet goed is afgesloten, of een corrupte data-map. Ik loop de oplossingen met je door zoals ik ze zelf heb toegepast, zonder omwegen.

Eerst checken: waarom MySQL in XAMPP niet start

Voordat je van alles gaat uitproberen, wil je weten waar het misgaat. XAMPP MySQL start niet op om een concrete reden, en die reden staat bijna altijd in een logbestand of in de Windows Event Viewer. Ga niet gokken, ga kijken.

Open Event Viewer via Configuratiescherm > Systeembeheer > Event Viewer, of typ gewoon eventvwr in de zoekbalk. Klik op Windows-logboeken > Systeem en zoek naar gebeurtenissen met event ID 10048. Die code betekent letterlijk: “address already in use”. Er zit dus een ander programma op poort 3306, de standaardpoort van MySQL. Dat kan een eerder gestarte mysqld.exe zijn, maar ook Skype, Teams, of een andere database zoals MariaDB die je ooit hebt geïnstalleerd.

Open Taakbeheer, zoek op mysqld en beëindig alle processen. Start daarna XAMPP opnieuw. In negen van de tien gevallen is het probleem dan weg.

Poort 3306 vrijmaken als dat niet lukt

Als er geen mysqld-proces draait maar poort 3306 nog steeds bezet is, wil je weten welk proces hem vasthoudt. Open een opdrachtprompt als administrator en typ:

netstat -ano | findstr :3306

Je krijgt een PID te zien. Zoek die PID op in Taakbeheer onder het tabblad Details. Vaak is het een updater van een ander programma of een achtergrondservice. Sluit hem af of schakel de service uit via services.msc.

Een alternatief dat ik zelf vaak gebruik: laat MySQL gewoon op een andere poort draaien. Open C:xamppmysqlbinmy.ini, zoek de regel port=3306 en wijzig die naar 3307. Vergeet niet dezelfde poort aan te passen in phpMyAdmin (config.inc.php) en in je projectconfiguratie. Werkt prima, maar je moet het overal consistent houden.

Firewall en antivirus die MySQL blokkeren

Soms start MySQL wel, maar wordt de verbinding geblokkeerd door de Windows Firewall of een agressief antiviruspakket. Dat uit zich meestal in de melding “MySQL shutdown unexpectedly” of een time-out bij het verbinden.

Ga naar Configuratiescherm > Systeem en beveiliging > Windows Defender Firewall > Geavanceerde instellingen. Kijk onder zowel Inbound Rules als Outbound Rules of er regels staan voor mysqld.exe of xampp-control.exe die op Blokkeren staan. Schakel die regels uit of verwijder ze.

Bij antivirussoftware zoals Avast, Kaspersky of Bitdefender: voeg de volledige XAMPP-map toe aan de uitsluitingenlijst. Ik heb meegemaakt dat een antivirus de mysql-map quarantaine zette zonder melding, waardoor MySQL bij elke start crashte.

Logbestanden lezen: de snelste route naar de oorzaak

De map C:xamppmysqldata bevat het bestand mysql_error.log. Open het met Kladblok en scroll naar de onderste regels. Daar staat exact wat er misgaat. Een paar bekende meldingen en wat ze betekenen:

  • InnoDB: Unable to lock ./ibdata1 — er draait al een MySQL-instantie. Beëindig het proces via Taakbeheer.
  • Unknown storage engine ‘InnoDB’ — je ibdata1 of ib_logfile is beschadigd. Verwijder ib_logfile0 en ib_logfile1 (niet ibdata1!) en start opnieuw. MySQL bouwt de logbestanden opnieuw op.
  • Table ‘mysql.plugin’ doesn’t exist — je data-map is corrupt of half gekopieerd. Zet een back-up terug of herinstalleer de mysql-map.
  • Can’t create/write to file — rechtenprobleem. Start XAMPP als administrator of controleer of je gebruiker schrijfrechten heeft op de XAMPP-map.

Data-map repareren of opnieuw opbouwen

Als de log duidelijk maakt dat de InnoDB-bestanden beschadigd zijn, is er een reddingsroute. Hernoem de map C:xamppmysqldata naar data_oud en kopieer de map C:xamppmysqlbackup (die XAMPP standaard meelevert) naar een nieuwe map data. Start MySQL. Je hebt dan een schone database, maar je verliest je eigen databases.

Wil je je data behouden, probeer dan eerst met de opdrachtregel:

mysqld –innodb-force-recovery=1

Start mysqld vanuit de bin-map met deze optie. Je kunt dan in ieder geval een dump maken met mysqldump voordat je de boel opnieuw opbouwt. Force recovery is bedoeld als noodoplossing, niet als permanente instelling.

Rechten, paden en het bekende Windows 10/11-probleem

Een flink aantal gebruikers loopt vast omdat XAMPP in C:Program Files is geïnstalleerd. Windows schermt die map af en MySQL mag daar geen bestanden aanmaken. Installeer XAMPP altijd in C:xampp en nergens anders. Dat is geen mening, dat is gewoon hoe het werkt met de permissies van Windows.

Een tweede bekende valkuil: je hebt eerder een systeembrede MySQL-service geïnstalleerd via de MySQL Installer. Die draait op de achtergrond en pakt poort 3306 voordat XAMPP erbij kan. Open services.msc, zoek naar MySQL of MySQL80 en zet de service op Handmatig of Stop hem volledig.

Wat je moet doen als niets werkt

Heb je alle bovenstaande stappen gehad en start XAMPP MySQL nog steeds niet, dan is een schone herinstallatie de snelste weg vooruit. Verwijder XAMPP volledig, verwijder de mappen C:xampp en eventuele resten in ProgramData, en installeer opnieuw. Vergeet niet je databases uit de oude data-map te exporteren voordat je alles weggooit.

Mijn advies: werk nooit rechtstreeks in de XAMPP-mysql-data zonder back-up. Maak er een gewoonte van om na elke werksessie een dump te maken met mysqldump. Dan kost een crash je hooguit een kwartier in plaats van een hele middag. XAMPP is prima voor lokaal ontwikkelen, maar het is geen productieserver en gedraagt zich ook niet zo.

Tip: houd een aparte map bij met exports van je databases. Als MySQL opnieuw crasht, zet je binnen vijf minuten alles terug.

Met de stappen hierboven los je in bijna alle gevallen het probleem op dat XAMPP MySQL niet start. Begin bij de Event Viewer, check poort 3306, kijk naar de firewall, lees de error.log en pak pas daarna de zwaardere middelen zoals een data-reparatie of herinstallatie.