Подключите к удаленной базе данных MySQL через SSH использование Java

Как я могу соединиться с удаленной базой данных MySQL через SSH из JAVA-приложения? Маленький пример кода полезен для меня, и я ценил бы это.

40
задан Martin Prikryl 18 April 2019 в 07:04
поделиться

1 ответ

Насколько я понимаю, вы хотите получить доступ к 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 соединения.

39
ответ дан 27 November 2019 в 01:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: