Fehler bei MySQL-Zugriff trotz richtigen Passwort! Heute geht es um einen interessanten Fehler in Verbindung mit MySQL. Das Problem ist bei der Testinstallation von unserem Formmail-Script in Xampp aufgefallen.
Für die Einrichtung der Datenbank habe ich einen extra Benutzer angelegt. Allerdings kam beim Zugriff auf die Datenbank über PHP nur folgende Fehlermeldung:
Warning: mysqli_connect(): (HY000/1045): Access denied for user 'formmail'@'localhost' (using password: YES)
Seltsam, das Passwort stimmt und der Account ist in phpMyAdmin korrekt angelegt.
Auch im Code gibt es keinen Fehler:
$dbname='formmail'; $dbhost='localhost'; $dbuser='formmail'; $dbpass='password'; $db = mysqli_connect($dbhost,$dbuser,$dbpass, $dbname);
Interessanterweise funktionierte die Verbindung zur Datenbank sobald man statt localhost
die IP-Adresse verwendete.
$dbhost='192.168.0.11';
Was ist da los?
Die Lösung?
Aufmerksame Leser werden im Screenshot oben einen Warnhinweis erkannt haben:
A user account allowing any user from localhost to connect is present.
This will prevent other users from connecting if the host part of
their account allows a connection from any (%) host.Documentation
Unser Benutzer „formmail“ kann von jedem beliebigen Host zugreifen. Dies ist die Angabe %
:
Diese Angabe kollidiert mit dem Benutzer Any
. Es gibt nun zwei Möglichkeiten. Die erste ist, man entfernt die beiden Benutzerangaben Any
. Alternativ ändern wir den Benutzer formmail
ab und erlauben den Zugriff vom localhost
.
Anschließend funktioniert der Zugriff. Die Benutzerangaben von Any
können übrigens gefahrlos entfernt werden, bzw. ist das bzgl. Sicherheit sogar empfohlen.
Vielen Dank!!! Das hat mir sehr geholfen!