La mia comprensione è che si desidera accedere a un server mysql in esecuzione su una macchina remota e in ascolto, diciamo sulla porta 3306 attraverso un tunnel SSH.
Per creare un tale tunnel dalla porta 1234 sulla tua macchina locale alla porta 3306 su una macchina remota usando il client ssh della riga di comando, devi digitare il seguente comando dalla tua macchina locale:
ssh -L 1234:localhost:3306 mysql.server.remote
Per fare la stessa cosa da Java, puoi usare JSch , un'implementazione Java di SSH2. Dal suo sito web:
JSch ti consente di connetterti a un server sshd e utilizzare il port forwarding, l'inoltro X11, il trasferimento di file, ecc. E puoi integrarne le funzionalità nei tuoi programmi Java. JSch è concesso in licenza con licenza in stile BSD.
Per un esempio, dai un'occhiata a PortForwardingL.java
. Una volta connessa la sessione, crea la tua connessione JDBC a MySQL usando qualcosa come jdbc:mysql://localhost:1234/[database]
come URL di connessione.