Aktivieren des Remotezugriffs (Grant) Startseite / Tutorials / MySQL / Aktivieren des Remotezugriffs (Grant) Wenn Sie versuchen, von einem Remotecomputer aus eine Verbindung zu Ihrem MySQL-Server herzustellen, und der folgende Fehler auftritt, ist dieser Artikel genau das Richtige für Sie.
FEHLER 1130 (HY000): Host '1.2.3.4' darf keine Verbindung zu diesem MySQL-Server herstellen
Ändern Sie die MySQL-Konfiguration
Beginnen Sie mit der Bearbeitung der MySQL-Konfigurationsdatei
vim /etc/mysql/my.cnf
Kommentieren Sie die folgenden Zeilen aus.
#bind-address = 127.0.0.1
#skip-networking
Wenn Sie keine Skip-Networking-Zeile finden, fügen Sie sie hinzu und kommentieren Sie sie aus.
Starten Sie den MySQL-Server neu.
~ /etc/init.d/mysql restart
Ändern Sie das GRANT-Privileg
Es kann Sie überraschen, dass Sie auch nach der obigen Änderung keinen Remotezugriff oder Zugriff erhalten, aber nicht auf alle Datenbanken zugreifen können.
Standardmäßig dürfen der von Ihnen verwendete MySQL-Benutzername und das Passwort lokal auf den MySQL-Server zugreifen. Also muss das Privileg aktualisiert werden.
Führen Sie einen Befehl wie unten aus, um von allen Computern aus darauf zuzugreifen. (Ersetzen Sie USERNAME
und PASSWORD
durch Ihre Anmeldeinformationen.)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
Führen Sie einen Befehl wie unten aus, um Zugriff von einer bestimmten IP zu gewähren. (Ersetzen Sie USERNAME
und PASSWORD
durch Ihre Anmeldeinformationen.)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'1.2.3.4' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
Sie können 1.2.3.4 durch Ihre IP ersetzen. Sie können den obigen Befehl viele Male ausführen, um den Zugriff von mehreren IP-Adressen zu gewähren.
Sie können auch ein separates USERNAME
& PASSWORD
für den Fernzugriff angeben .
Sie können das Endergebnis überprüfen, indem Sie:
SELECT * from information_schema.user_privileges where grantee like "'USERNAME'%";
Schließlich müssen Sie möglicherweise auch Folgendes ausführen:
mysql> FLUSH PRIVILEGES;
Testverbindung
Vom Terminal / Kommandozeile:
mysql -h HOST -u USERNAME -pPASSWORD
Wenn Sie eine MySQL-Shell erhalten, vergessen Sie nicht, Show-Datenbanken auszuführen. um zu überprüfen, ob Sie über die richtigen Berechtigungen von Remotecomputern verfügen.
Bonus-Tipp: Zugriff widerrufen
Wenn Sie einem Benutzer versehentlich Zugriff gewähren, sollten Sie die Widerrufsoption zur Hand haben.
Im Folgenden werden alle Optionen für USERNAME von allen Computern widerrufen:
mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'USERNAME'@'%';
Following will revoke all options for USERNAME from particular IP:
mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'USERNAME'@'1.2.3.4';
Its better to check information_schema.user_privileges table after running REVOKE command.
Wenn Sie nach dem Ausführen des REVOKE-Befehls das USAGE-Privileg sehen, ist dies in Ordnung. Es ist so gut wie gar kein Privileg. Ich bin nicht sicher, ob es widerrufen werden kann.