sql >> Databasteknik >  >> RDS >> Mysql

Fjärranslutning till MySQL på Google Compute Engine VM

Jag hittade precis lösningen på mitt problem,

Speciellt tack till @Slava för att du visade mig vägen, trots allt var det iptables.

Så jag fick hela tiden meddelandet "MySQL-anslutningen nekad" när jag försökte ansluta på distans så jag sökte efter ett sätt att se TCP-anslutningsloggar och jag hittade tcpdump kommando.

Genom att köra sudo tcpdump port 3306 -vvv -n Jag såg följande utdata varje gång jag försökte ansluta på distans:

Jag sökte på tcpdump man-sidan och såg att R betyder för TCP RST (RESET) flagga.

Sökte lite och hittade denna fråga och dess accepterade svar ledde mig igen till IPTABLES som @Slava föreslog sedan den första kommentaren.

Det var då jag tittade noga och såg att min INPUT ACCEPT tcp:3306 definierades efter REJECT TCP reject-with tcp-reset-regeln, så loggen visades.

Efter detta tog jag bara bort regeln för att acceptera tcp:3306 och satte den inför reglerna för avvisa tcp och 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 ser nu ut så här och äntligen kan jag ansluta till MySQL på distans:

För att lista iptables med radnummer skriv:

sudo iptables -nL --line-numbers

Sista tankar:

  • Detta kan förbättras genom att vitlista käll-IP-adressen varifrån du gör fjärranslutningen för säkerhetsfrågor.


  1. Databasproblem när man tillåter flera beständiga inloggningar i webbläsaren

  2. MySQL-fel - #1062 - Dubblettpost ' ' för nyckel 2

  3. Hur ser jag vilken teckenuppsättning en MySQL-databas/tabell/kolumn är?

  4. django mysql force användning av index