
Ich habe derzeit einen Server, der eine Verbindung zu einem zentralen MySQL-Server herstellt (sagen wir 192.168.0.10). Dieser Server erlaubt bereits Remote-Verbindungen von dieser IP-Adresse (sagen wir 192.168.0.20) und funktioniert trotz meiner bisherigen Änderungen weiterhin. Für diese eine IP-Adresse.
Wenn ich versuche, mit demselben Benutzernamen und Kennwort von verschiedenen Hosts aus Zugriff zu gewähren, etwa so:
update db set host='192.168.0.%' where user='username';
update user set host='192.168.0.%' where user='username';
flush privileges;
Alles bleibt gleich. Ich kann mich immer noch von 192.168.0.20 aus verbinden, aber auch nicht von 192.168.0.25 aus. Ich erhalte die Fehlermeldung
FEHLER 1130 (HY000): Host '192.168.0.25' darf keine Verbindung zu diesem MySQL-Server herstellen
Ich sehe nicht, was daran falsch sein soll. In der gesamten Dokumentation steht, dass es funktionieren sollte. Ich sperre auch keine Verbindungen von 192.168.0.25 durch eine Firewall. Selbst ein Neustart von MySQL hat keine Auswirkungen. Andere IPs in diesem Netzwerk können sich ohne Probleme mit MySQL verbinden – sogar solche, die vorher nicht erlaubt waren – und ich kann 192.168.0.10 von 192.168.0.25 aus anpingen.
Antwort1
Sie müssen mysql.user
die Tabelle ändern, nicht nur die mysql.db
.
Die richtige Syntax lautet:
RENAME USER 'user'@'192.168.0.10' TO 'user'@'192.168.0.%';
FLUSH PRIVILEGES;