Как я могу соединиться с удаленной базой данных MySQL через SSH из JAVA-приложения? Маленький пример кода полезен для меня, и я ценил бы это.
Насколько я понимаю, вы хотите получить доступ к mysql-серверу, запущенному на удаленной машине и прослушивающему, скажем, порт 3306 через SSH-туннель.
Для создания такого туннеля с порта 1234 на локальной машине на порт 3306 на удаленной машине с помощью ssh-клиента командной строки, вы набираете следующую команду с локальной машины:
ssh -L 1234:localhost:3306 mysql.server.remote
Для того, чтобы сделать то же самое с Java, вы можете использовать JSch, Java реализацию SSH2. Со своего сайта:
JSch позволяет Вам подключиться к sshd серверу и использовать переадресацию портов, переадресацию X11, передачу файлов и т.д., а также Вы можете интегрировать его функциональность в Ваши собственные Java программы. JSch лицензируется по лицензии в стиле BSD.
Например, взгляните на PortForwardingL.java
. Как только сессия будет подключена, создайте JDBC соединение с MySQL, используя что-то вроде jdbc:mysql://localhost:1234/[database]
в качестве URL соединения.