Min forståelse er, at du vil have adgang til en mysql-server, der kører på en ekstern maskine og lytter på lad os sige port 3306 gennem en SSH-tunnel.
For at oprette en sådan tunnel fra port 1234 på din lokale maskine til port 3306 på en ekstern maskine ved hjælp af kommandolinjen ssh-klient, skal du skrive følgende kommando fra din lokale maskine:
ssh -L 1234:localhost:3306 mysql.server.remote
For at gøre det samme fra Java kan du bruge JSch , en Java-implementering af SSH2. Fra sin hjemmeside:
JSch giver dig mulighed for at oprette forbindelse til en sshd-server og bruge portvideresendelse, X11-videresendelse, filoverførsel osv., og du kan integrere dens funktionalitet i dine egne Java-programmer. JSch er licenseret under BSD-stil licens.
For et eksempel, tag et kig på PortForwardingL.java
. Når sessionen er forbundet, skal du oprette din JDBC-forbindelse til MySQL ved at bruge noget som jdbc:mysql://localhost:1234/[database]
som forbindelses-URL.