Für die Entwicklung von Webanwendungen in PHP verwende ich einen lokalen XAMPP. Da dieser jedoch schon etwas veraltet war und sich dies besonders im Hinblick auf die PHP-Version bemerkbar machte, habe ich eine aktuellere Version von XAMPP installiert.
An sich funktionierte das auch eigentlich ohne Probleme. Nachdem dann auch alles anstandslos lief, machte ich ich daran, unnötige, bei der Installation angelegte MySQL-Benutzer zu löschen, sodass es nur noch "root" gab.
Wie sich später jedoch herausstellte, war dies ein Fehler. Dies machte sich darin bemerkbar, dass sich der MySQL-Server über das "XAMPP Control Panel" zwar starten, jedoch nicht mehr stoppen ließ. Stattdessen tauchte im Log-Bereich folgende Fehlermeldung auf:
ERROR: mysql not stopped
Da diese jedoch bezüglich der Ursache nicht wirklich aussagekräftig ist, versuchte ich es mit der mitgelieferten Batch-Datei "mysql_stop.bat". Die dabei angezeigte Fehlermeldung war schon wesentlich genauer:
connect to server at 'localhost' failed
error: 'Access denied for user 'pma'@'localhost' (using password: NO)'
Somit war zumindest einmal klar, wo das Problem liegt. Der MySQL-Benutzer "pma" war nämlich einer der vorher gelöschten.
Falls der Benutzer bereits existieren sollte, das Problem aber trotzdem besteht, ist folgende Fehlermeldung zu sehen:
shutdown failed; error: 'Access denied; you need the SHUTDOWN privilege for this operation'
In diesem Fall muss dem Benutzer das Globale Recht SHUTDOWN gegeben werden.
Auch wenn der Benutzer in meinem Fall gar nicht existierte, war die Lösung des Problems trotzdem relativ einfach:
- Im Browser phpMyAdmin aufrufen (normalerweise: http://localhost/phpmyadmin) und als "root" anmelden.
- Unter Rechte den Benutzer "pma" anlegen und diesem dabei unter Globale Rechte das Recht SHUTDOWN zuweisen. Da der Benutzer zwar eigentlich kein Passwort haben darf, beim Anlegen des Benutzers von phpMyAdmin aber zwingend eines verlangt wird, muss hier ein beliebiges angegeben werden.
- Im nächsten Schritt nun wieder unter Rechte auf das Symbol Rechte ändern für den Benutzer pma klicken.
- In der nun folgenden Eingabemaske kann im Bereich Passwort ändern der Punkt Kein Passwort ausgewählt werden. Nach einem Klick auf OK ist für pma nun kein Passwort mehr nötig.
In beiden Fällen sollte es nun wieder ohne Probleme möglich sein, den MySQL-Server über das XAMPP Control Panel zu stoppen.
Hat mir gerade sehr geholfen.
Bei mir trat das Problem überigens auf, nachdem ich von Xampp 1.7.0 auf 1.7.2 und wieder zurück gewechselt hatte. (Wg. Inkompatibilität Typo3 und PHP 5.3.0)