Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Host „xxx.xx.xxx.xxx“ darf sich nicht mit diesem MySQL-Server verbinden

Möglicherweise eine Sicherheitsvorkehrung. Sie könnten versuchen, ein neues Administratorkonto hinzuzufügen:

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;

Obwohl, wie Pascal und andere angemerkt haben, es keine gute Idee ist, einen Benutzer mit dieser Art von Zugriff für jede IP offen zu haben. Wenn Sie einen Administrator benötigen, verwenden Sie root und belassen Sie ihn auf localhost. Geben Sie für jede andere Aktion genau die Berechtigungen an, die Sie benötigen, und schränken Sie die Zugriffsrechte des Benutzers ein, wie Pascal unten vorschlägt.

Bearbeiten:

Aus den MySQL-FAQ:

Wenn Sie nicht herausfinden können, warum Ihnen der Zugriff verweigert wird, entfernen Sie alle Einträge aus der Benutzertabelle, deren Hostwerte Wildcards enthalten (Einträge mit den Zeichen '%' oder '_'). Ein sehr häufiger Fehler besteht darin, einen neuen Eintrag mit Host='%' und User='irgendein_Benutzer' einzufügen, weil Sie denken, dass Sie dadurch localhost angeben können, um sich von derselben Maschine aus zu verbinden. Dass dies nicht funktioniert, liegt daran, dass die Standardrechte einen Eintrag mit Host='localhost' und User='' enthalten. Da dieser Eintrag einen Hostwert 'localhost' hat, der spezifischer ist als '%', wird er beim Verbinden von localhost gegenüber dem neuen Eintrag bevorzugt verwendet! Die richtige Vorgehensweise besteht darin, einen zweiten Eintrag mit Host='localhost' und User='some_user' einzufügen oder den Eintrag mit Host='localhost' und User='' zu löschen. Denken Sie nach dem Löschen des Eintrags daran, eine FLUSH PRIVILEGES-Anweisung abzusetzen, um die Berechtigungstabellen neu zu laden. Siehe auch Abschnitt 5.4.4, „AccessControl, Phase 1:ConnectionVerification“.