Я пытаюсь подключиться к MySQL на удаленном сервере через SSH соединение с моего компьютера под управлением ОС Windows. Я установил все необходимые SSH, Java JAR-файлы и доверие могу получить доступ к SSH, но вместо того, чтобы подключиться к удаленному хосту, я подключаю локальную базу данных на моей машине, как облако, я сказал ниже код для перехода на удаленный сервер
так как мой провайдер сервера не дает ip только разрешить доступ через ssh
код здесь
package connectsshserver;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
import java.sql.Connection;
public class MySqlConnOverSSH {
public static void main(String[] args) throws SQLException {
int lport=3306;
String rhost="host47.registrar-servers.com";
String host="host47.registrar-servers.com";
int rport=3306;
String user="soft123a"; //ssh user name
String password="123487ab"; //ssh password
String dbuserName = "root";
String dbpassword = "";
String url = "jdbc:mysql://127.0.0.1"+"/arbaccounting"; //host+db
String driverName="com.mysql.jdbc.Driver";
Connection conn = null;
Session session= null;
try{
//Set StrictHostKeyChecking property to no to avoid UnknownHostKey issue
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
JSch jsch = new JSch();
session=jsch.getSession(user, host, 21098);
session.setPassword(password);
session.setConfig(config);
session.connect();
System.out.println("Connected");
int assinged_port=session.setPortForwardingL(21098, rhost, 3306);
System.out.println("127.0.0.1:"+assinged_port+" -> "+rhost+":"+rport);
System.out.println("Port Forwarded");
//mysql database connectivity
Class.forName(driverName).newInstance();
conn = DriverManager.getConnection (url, dbuserName, dbpassword);
System.out.println ("Database connection established");
System.out.println("DONE");
}catch(Exception e){
e.printStackTrace();
}finally{
if(conn != null && !conn.isClosed()){
System.out.println("Closing Database Connection");
conn.close();
}
if(session !=null && session.isConnected()){
System.out.println("Closing SSH Connection");
session.disconnect();
}
}
}
}
отлично, но для местных дБ
что я изменить, чтобы подключиться к удаленной БД?
Связано
127.0.0.1:21098 -> host47.registrar-servers.com:3306
Порт переадресован
Соединение с базой данных установлено
СДЕЛАННЫЙ
Закрытие соединения с базой данных
Закрытие SSH-соединения
СТРОИТЬ УСПЕШНО (общее время: 9 секунд)