Právě jsem našel řešení svého problému,
Zvláštní poděkování @Slava za to, že mi ukázal cestu, koneckonců to byly iptables.
Při pokusu o vzdálené připojení se mi tedy stále zobrazovala zpráva „Připojení MySQL odmítnuto“, takže jsem hledal způsob, jak zobrazit protokoly připojení TCP a našel jsem tcpdump
příkaz.
Spuštěním sudo tcpdump port 3306 -vvv -n
Při každém pokusu o vzdálené připojení jsem viděl následující výstup:
Prohledal jsem manuálovou stránku tcpdump a viděl jsem, že R znamená příznak TCP RST (RESET).
Trochu jsem hledal a našel toto otázka a jeho přijatá odpověď mě znovu zavedla do IPTABLES, které @Slava navrhl od prvního komentáře.
Tehdy jsem se podíval pozorně a viděl jsem, že můj INPUT ACCEPT tcp:3306 byl definován po pravidle REJECT TCP cancel-with tcp-reset, a proto se zobrazil protokol.
Poté jsem právě odstranil pravidlo pro přijetí tcp:3306 a přidal jej před pravidla odmítnutí tcp a 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 nyní vypadá takto a konečně se mohu vzdáleně připojit k MySQL:
Chcete-li zobrazit seznam iptables s čísly řádků, zadejte:
sudo iptables -nL --line-numbers
Závěrečné myšlenky:
- To lze zlepšit přidáním zdrojové IP adresy, ze které provádíte vzdálené připojení, z bezpečnostních důvodů na seznam povolených.