У меня была проблема здесь, возможно ли, что JDBC подключается к серверу amazon MySQL удаленно? Я поиск в Интернете для решения, но в конечном итоге получать ошибкуconnect amazon mysql с JDBC через удаленный сервер
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
Я использую jsch.jar для подключения к удаленному серверу, затем вызвать соединитель JDBC пытается соединиться БД MySQL, я успешно подключен к удаленному сервер пока я не могу подключиться БД MySQL на Амазонке, вот мой код
testPutty t = new testPutty();
t.connect("admin", "", "xx:xx:xx:xx", "openSSHPrivateKey", 22);
t.connect();
System.out.println("connected");
Class.forName("com.mysql.jdbc.Driver");
DriverManager.getConnection("jdbc:mysql://staging.ppyhcsxnlkji.ap-southwest-1.rds.amazonaws.com:3306/staging","superuser","password");
System.out.println("hello world");
t.close();
Непонятно, что вы просите. Вы пытаетесь установить соединение с сервером MySQL через туннель ssh? Если это так, вам нужно указать конфигурацию туннеля (локальные и удаленные порты) при настройке ssh-соединения, а затем подключиться к этому порту на _localhost_. Если нет, то непонятно, зачем вам ssh-соединение. –
да именно то, что вы говорите, но я понятия не имею, как указать туннель. Обращайтесь ко мне с образцом кода, поскольку я только начал изучать SSH с помощью jsch.jar –
Прочитайте справочную страницу SSH для параметров командной строки. Исходящий туннель настраивается с помощью '-Lnnnn: host: mmmm', где' nnnn' является локальным портом, 'host' является хостом для подключения в дальнем конце, а' mmmm' является удаленным портом. Что такое 'testPutty'? Это оболочка, которую вы написали для командной строки? BTW, имена классов в Java должны начинаться с буквы верхнего регистра. –