sql >> Database teknologi >  >> RDS >> Mysql

Fjerntilslut til MySQL på Google Compute Engine VM

Jeg har lige fundet løsningen på mit problem,

Særlig tak til @Slava for at vise mig vejen, det var trods alt iptables.

Så jeg blev ved med at modtage en "MySQL-forbindelse nægtet"-meddelelse, da jeg forsøgte at oprette forbindelse eksternt, så jeg søgte efter en måde at se TCP-forbindelseslogfiler og jeg fandt tcpdump kommando.

Ved at køre sudo tcpdump port 3306 -vvv -n Jeg så følgende output, hver gang jeg forsøgte at oprette forbindelse via fjernadgang:

Jeg søgte på tcpdump man-siden og så, at R betyder for TCP RST (RESET) flag.

Søgte lidt og fandt denne spørgsmål og dets accepterede svar førte mig igen ind i IPTABLES, som @Slava foreslog siden den første kommentar.

Det var da jeg kiggede grundigt og så, at min INPUT ACCEPT tcp:3306 blev defineret efter REJECT TCP reject-with tcp-reset-reglen, så loggen blev vist.

Herefter fjernede jeg lige reglen for at acceptere tcp:3306 og satte den foran afvis tcp-reglerne og 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 sådan ud, og endelig kan jeg oprette forbindelse til MySQL eksternt:

For at vise iptablerne med linjenumre, skriv:

sudo iptables -nL --line-numbers

Sidste tanker:

  • Dette kan forbedres ved at hvidliste kilde-IP-adressen, hvorfra du laver fjernforbindelsen af ​​sikkerhedsmæssige årsager.


  1. Generer DEFAULT-værdier i en CTE UPSERT ved hjælp af PostgreSQL 9.3

  2. Hvordan ændres BRUGERNAVN og ADGANGSKODE i MySQL?

  3. Hvordan GROUP BY korrekt i MySQL?

  4. 5 gode grunde til at downloade og bruge Microsoft Access-skabeloner