Je hebt MYSQL draaien op je server, maar het is geopend op lokale
poorten voor beveiligingsredenen. Als je je databases wilt beheren met
iets anders dan webbased apps zoals PHPMyAdmin, zoals de MySQL Query
browser, dan moet je de poorten openen voor de buitenwereld. Dat is
niet erg veilig, dus een nadeel voor de awesome apps als de Query
Browser.
Gelukkig is er een oplossing voor. We kunnen port forwarding gebruiken
via een SSH tunnel. Op diem anier kan de MySQL client connecten naar
localhost, terwijl de poort geforward wordt naar de server via een SSH
tunnel.
Om een tunnel te maken, kan je naar de desbetreffende server connecten met het volgende:
ssh -L 3306:localhost:3306 dude@server.com
De syntax is:
ssh -L <local-port>host-forwarding-to<remote-port> <username>@<remote-host>
-L voor het binden van het adres, de lokale poort, lokale host, remote
poort en de ssh inlog gegevens. Wanneer je een app gebruikt als de
MySQL Query Browser, kan je connecten naar localhost, en dus vanaf daar
de poort binden. Je kan ook ssh -L gebruiken om een poort te openen
voor 1 server naar een andere server.
Als je MySQL ook op je lokale machine gebruikt, kan je een andere poort
gebruiken om MySQL mee te forwarden naar de remote host. Wanneer je dit
doet, bestaat de kans dat je de tunnel opzet naar een privileged port,
dus heb je root privileges nodig om de poort te accessen (daarom is
sudo ook toegevoegd aan het voorbeeld hieronder). Je kan de MySQL Query
Browser naar de andere poort laten wijzen, en de command line is dan
iets als het volgende:
sudo ssh -L 666:localhost:3306 dude@bytemods.com
Wanneer de SSH tunnel is opgezet, kan je MySQL Query Browser starten en
het wijzen naar localhost met de poort die je hebt aangegeven, en het
beste is, je hoeft nergens een poort te openen.