Ich versuche, dieAufgabeAWS-Debugging auf Rubymine in kleinere Teile aufzuteilen. Ich möchte eine Verbindung zum MySQL-Server herstellen, der auf AWS läuft. Also habe ich Folgendes getan:
Erste:Richten Sie einen SSH-Tunnel ein, um alle Localhost-Anfragen an Port 3307 an Port 3306 auf AWS weiterzuleiten:
ssh -l ubuntu -i 'path/to/private/key/privateKey.cer' -L 3307:aws.port:3306 aws.port -N -v -v
zweite:Verbindung zu MySQL über Port 3307 herstellen
mysql -h 127.0.0.1 -P 3307 -u root -p
Problem: es schlägt auf meinem Hostcomputer mit dem folgenden Fehler fehl:
ERROR 1130 (HY000): Host '178.135.138.61' is not allowed to connect to this MySQL server
und das Protokoll auf AWS gibt Folgendes aus:
debug1: Connection to port 3307 forwarding to 54.193.1.19 port 3306 requested.
debug2: fd 7 setting TCP_NODELAY
debug1: channel 2: new [direct-tcpip]
channel 2: open failed: connect failed: Connection refused
debug2: channel 2: zombie
debug2: channel 2: garbage collecting
debug1: channel 2: free: direct-tcpip: listening port 3307 for 54.193.1.19 port 3306, connect from 127.0.0.1 port 64938, nchannels 3
Anmerkungen:
- Ich habe sichergestellt, dass die Sicherheitsgruppe des AWS-Servers, mit dem ich mich verbinde,
ssh
Verbindungen über Port 22 zulässt - Ich habe sichergestellt, dass
/etc/hosts.deny
auf AWS weder localhost noch 127.0.0.1 aufgeführt sind.
Ideen?
Antwort1
Die Fehlermeldung
ERROR 1130 (HY000): Host '178.135.138.61' is not allowed to connect to this MySQL server
kommt von MySQL. Um dem Benutzer root den Fernzugriff zu ermöglichen, müssen Sie dies speziell für die jeweilige Datenbank auf dem MySQL-Server zulassen.
mysql -u root -p
mysql> grant all privileges on somedatabase.* to 'root'@'178.135.138.61' identified by 'somepassword';
mysql> flush privileges;
Dadurch kann der Benutzername „root“ von 178.135.138.61 aus mit allen Berechtigungen für eine Datenbank eine Verbindung zu MySQL herstellen.
Lesen Sie sich am besten dieMySQL-Sicherheitsdokumentationinsbesondere dieZugangskontrolleUndBenutzerverwaltungKapitel.