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

Stellen Sie eine Remoteverbindung zu MySQL auf der Google Compute Engine-VM her

Ich habe gerade die Lösung für mein Problem gefunden,

Besonderen Dank an @Slava für den Wegweiser, schließlich war es iptables.

Daher erhielt ich beim Versuch, eine Remoteverbindung herzustellen, immer wieder die Meldung „MySQL-Verbindung abgelehnt“, also suchte ich nach einer Möglichkeit, TCP-Verbindungsprotokolle anzuzeigen, und fand den tcpdump Befehl.

Durch Ausführen von sudo tcpdump port 3306 -vvv -n Jedes Mal, wenn ich versuchte, eine Remote-Verbindung herzustellen, sah ich die folgende Ausgabe:

Ich habe die tcpdump-Manpage durchsucht und gesehen, dass R für TCP RST (RESET) Flag steht.

Ein bisschen gesucht und diesen gefunden Frage und seine akzeptierte Antwort führte mich wieder zu IPTABLES, die @Slava seit dem ersten Kommentar vorgeschlagen hat.

Das war, als ich genau hinsah und sah, dass mein INPUT ACCEPT tcp:3306 nach der REJECT TCP-Reject-with-TCP-Reset-Regel definiert wurde, daher wurde das Protokoll angezeigt.

Danach habe ich einfach die Regel zum Akzeptieren von TCP:3306 entfernt und sie den TCP-Ablehnungsregeln vorangestellt und voila!

iptables -D INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
iptables -I INPUT {line number from the first reject tcp rule} -p tcp -m tcp --dport 3306 -j ACCEPT

IPTABLES sieht jetzt so aus und endlich kann ich mich remote mit MySQL verbinden:

Um die iptables mit Zeilennummern aufzulisten, geben Sie Folgendes ein:

sudo iptables -nL --line-numbers

Schlussgedanken:

  • Dies kann verbessert werden, indem Sie die Quell-IP-Adresse, von der aus Sie die Remote-Verbindung herstellen, aus Sicherheitsgründen auf die Whitelist setzen.