Ich habe eine MySQL-Datenbank, auf die nur über die interne Netzwerk-IP 10.*:3306 zugegriffen werden kann, und ich möchte meinen lokalen Computer verwenden, um phpmyadmin als Administrator einzurichten, aber ich versuche zunächst, den SSH-Tunnel einzurichten. Ich führe den Befehl aus, ssh -N admin@host_b_public_ip -L 3308:host_b_internal_ip:3306
aber der Befehl hängt einfach in meinem Terminal. Wenn ich ein anderes Terminal öffne und versuche mysql -P 3308 -u root -p
, das MySQL-Root-Passwort von host_b einzugeben, wird mir dies verweigert. Kann ich irgendwie testen, ob meine Verbindung offen ist? Soll dieser Befehl einfach in einem blockierenden Terminalmodus ausgeführt werden oder wird er nicht richtig ausgeführt? Ist das, was ich hier versuche, überhaupt möglich?
Antwort1
- Versuchen Sie es
ssh -f -N *etc*
. Dadurch-f
wird der SSH-Befehl im Hintergrund ausgeführt. - Versuchen Sie es
mysql -h 127.0.0.1 -P 3308 *etc*
. Die-h 127.0.0.1
Meldung zeigt anmysql
, dass Sie versuchen sollen, eine Verbindung zu einemNetzwerkServer bei localhost, statt einem lokalen Server. Aufgrund der Portweiterleitungsregel wird die Netzwerkverbindung dann an den Remote-Server weitergeleitet. Wenn Sie kein Flag verwenden-h
, wird nur versucht, mit einem lokalen MySQL-Server zu kommunizieren, und es erfolgt überhaupt keine Verbindung über das Netzwerk.