PHP-Warnung: mysql_query(): Zugriff für Benutzer verweigert Lösung
Wenn Sie PHP zum Herstellen einer Verbindung zur MySQL-Datenbank verwenden, wird manchmal die folgende Fehlermeldung angezeigt:
PHP-Warnung: mysql_query(): Zugriff für Benutzer „xxx“@ verweigert 'localhost' (mit Passwort: JA)
Dies liegt daran, dass der Benutzername oder das Passwort, das PHP für die Verbindung zur MySQL-Datenbank verwendet, falsch ist. In diesem Artikel wird erläutert, wie Sie dieses Problem lösen können.
Lösung
1. Überprüfen Sie, ob der MySQL-Benutzername und das Passwort korrekt sind
Stellen Sie zunächst sicher, dass der von Ihnen verwendete MySQL-Benutzername und das Passwort korrekt sind. Sie können versuchen, die MySQL-Befehlszeile zu verwenden, um zu überprüfen, ob Ihr Benutzername und Ihr Passwort korrekt sind:
$ mysql -u Ihr_Benutzername -p
Wenn Ihr Benutzername beispielsweise „root“ ist, geben Sie den folgenden Befehl ein:
$ mysql - u root -p
Als nächstes werden Sie aufgefordert, Ihr Passwort einzugeben. Wenn Sie sich nach Eingabe des Passworts erfolgreich beim MySQL-Server anmelden, bedeutet dies, dass Ihr Benutzername und Ihr Passwort korrekt sind. Stellen Sie andernfalls sicher, dass Sie Ihren Benutzernamen und Ihr Passwort korrekt eingeben.
2. Überprüfen Sie die MySQL-Zugriffsberechtigungen
Wenn Ihr Benutzername und Ihr Passwort korrekt sind, Sie aber weiterhin auf Zugriffsverweigerungsfehler stoßen, kann es daran liegen, dass Ihr MySQL-Server nicht mit den richtigen Berechtigungen konfiguriert ist. In MySQL können nur Benutzer mit ausreichenden Berechtigungen auf bestimmte Datenbanken und Tabellen zugreifen.
Sie können die Zugriffsrechte des MySQL-Benutzers mit dem folgenden Befehl überprüfen:
$ SHOW GRANTS FOR user@localhost;
wobei user@localhost den MySQL-Benutzer identifiziert, den Sie überprüfen möchten, und den Host, zu dem Sie eine Verbindung herstellen. Wenn Ihr Benutzername beispielsweise „root“ ist, geben Sie den folgenden Befehl ein:
$ SHOW GRANTS FOR root@localhost;
Wenn Sie feststellen, dass Ihr MySQL-Benutzer keine Berechtigung zum Zugriff auf eine bestimmte Datenbank oder Tabelle hat, verwenden Sie den Folgender Befehl zur Autorisierung für diesen Benutzer:
$ GRANT ALL PRIVILEGES ON Database_name.* TO 'user_name'@'localhost' IDENTIFIED BY 'password';
Unter diesen gibt Datenbankname den Datenbanknamen an, dem Zugriff gewährt werden soll, und Benutzername gibt an Der zu autorisierende MySQL-Benutzername, Passwort gibt das Passwort des Benutzers an. Wenn Sie beispielsweise dem Root-Benutzer den Zugriff auf die mydb-Datenbank autorisieren möchten, geben Sie den folgenden Befehl ein:
$ GRANT ALL PRIVILEGES ON mydb.* TO 'root'@'localhost' IDENTIFIED BY 'your_password'
After the Wenn die Autorisierung abgeschlossen ist, sollten Sie versuchen, die Verbindung zu MySQL wiederherzustellen und Ihr PHP-Skript auszuführen.
3. MySQL-Protokolle anzeigen
Wenn das Problem durch die oben genannten Lösungen immer noch nicht gelöst wird, wird empfohlen, die Fehlerprotokolldatei von MySQL anzuzeigen. Die Protokolldateien befinden sich normalerweise im Verzeichnis /var/log des MySQL-Servers (oder unter Windows kann dies C:/ProgramData/MySQL/MySQL Server X.X/ oder C:/Program Files/MySQL/MySQL Server X.X/ sein). .
Öffnen Sie die Fehlerprotokolldatei und untersuchen Sie die darin enthaltenen Fehlermeldungen, um detailliertere Informationen zu finden, die Ihnen bei der Ermittlung der Grundursache des Problems helfen.
Fazit
In diesem Artikel haben wir vorgestellt, wie der Fehler „PHP-Warnung: mysql_query(): Zugriff verweigert für Benutzer ‚xxx‘@‚localhost‘“ behoben werden kann. Wenn Ihr Datenbankzugriff immer noch eingeschränkt ist, überprüfen Sie immer die Protokolldateien auf detailliertere Informationen zum Problem.
Das obige ist der detaillierte Inhalt vonPHP-Warnung: mysql_query(): Zugriff für Benutzerlösung verweigert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!