eKiwi

Fehler bei MySQL-Zugriff trotz richtigen Passwort - (HY000/1045): Access denied for user

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.


Copyright Dunkel & Iwer GbR - Alle Rechte vorbehalten