Heim > Datenbank > MySQL-Tutorial > Warum erhalte ich die Fehlermeldung „Host ‚xxx.xx.xxx.xxx' darf keine Verbindung zu diesem MySQL-Server herstellen', auch wenn ein „%'-Hosteintrag vorliegt?

Warum erhalte ich die Fehlermeldung „Host ‚xxx.xx.xxx.xxx' darf keine Verbindung zu diesem MySQL-Server herstellen', auch wenn ein „%'-Hosteintrag vorliegt?

DDD
Freigeben: 2024-12-20 18:06:11
Original
622 Leute haben es durchsucht

Why Do I Get

Remote-MySQL-Verbindungsfehler: „Host nicht zulässig“

Eine Remote-Verbindung zu MySQL kann manchmal zur Fehlermeldung „Host 'xxx. xx.xxx.xxx‘ darf keine Verbindung zu diesem MySQL-Server herstellen.“ Obwohl ein Root-Benutzereintrag mit den Hostwerten „localhost“ und „%“ vorhanden ist, schlägt die Verbindung fehl.

Dieses Problem tritt normalerweise aufgrund von Sicherheitsmaßnahmen auf, die von MySQL implementiert werden. Eine mögliche Lösung besteht darin, einen neuen Administratorbenutzer mit spezifischen Berechtigungen und Zugriffsbeschränkungen zu erstellen:

Neuen Administratorbenutzer erstellen:

mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost' ->     WITH GRANT OPTION;
mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%' ->     WITH GRANT OPTION;
Nach dem Login kopieren

Dabei ist die Gewährung umfassender Berechtigungen praktisch Aufgrund von Sicherheitsrisiken wird dies jedoch nicht empfohlen. Stattdessen ist es ratsam:

  • Beschränken Sie den Benutzerzugriff auf die spezifischen erforderlichen Hosts und IPs.
  • Gewähren Sie nur die für die jeweilige Aufgabe erforderlichen Berechtigungen.

MySQL-FAQ-Einblick:

Die MySQL-FAQ bietet weitere Erläuterungen hierzu Problem:

"Wenn Sie nicht herausfinden können, warum die Meldung „Zugriff verweigert“ angezeigt wird, entfernen Sie alle Benutzertabelleneinträge, deren Hostwerte Platzhalter enthalten (z. B. „% oder _“). Es kommt häufig vor, dass versehentlich ein Eintrag eingefügt wird mit host='%' und user='some_user', um localhost-Verbindungen zu aktivieren, funktioniert jedoch nicht, da die Standardberechtigungen einen Eintrag mit host='localhost' und user='' enthalten und wird stattdessen verwendet. Um localhost-Verbindungen zuzulassen, fügen Sie einen zweiten Eintrag mit host='localhost' und user='some_user' ein oder löschen Sie den Standard-localhost-Eintrag und geben Sie eine FLUSH PRIVILEGES-Anweisung aus

Das obige ist der detaillierte Inhalt vonWarum erhalte ich die Fehlermeldung „Host ‚xxx.xx.xxx.xxx' darf keine Verbindung zu diesem MySQL-Server herstellen', auch wenn ein „%'-Hosteintrag vorliegt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage