Meu entendimento é que você deseja acessar um servidor mysql rodando em uma máquina remota e escutando, digamos, a porta 3306 através de um túnel SSH.
Para criar um túnel desse tipo da porta 1234 em sua máquina local para a porta 3306 em uma máquina remota usando o cliente ssh da linha de comando, digite o seguinte comando em sua máquina local:
ssh -L 1234:localhost:3306 mysql.server.remote
Para fazer a mesma coisa em Java, você pode usar JSch , uma implementação Java do SSH2. Do seu site:
JSch permite que você se conecte a um servidor sshd e use encaminhamento de porta, encaminhamento X11, transferência de arquivos, etc., e você pode integrar sua funcionalidade em seus próprios programas Java. JSch é licenciado sob licença estilo BSD.
Por exemplo, dê uma olhada em
PortForwardingL.java
. Depois que a sessão estiver conectada, crie sua conexão JDBC com o MySQL usando algo como jdbc:mysql://localhost:1234/[database]
como URL de conexão.