belirli mysql host ile uzak ana SSH tünel ile MySQL Veritabanına bağlanma aşağıdaki resim:uzak MySQL veritabanına bağlanmak için ben <a href="http://www.jcraft.com/jsch/" rel="noreferrer">Jsch</a> kullanıyorum
private static void connectSSH() throws SQLException {
try {
java.util.Properties config = new java.util.Properties();
JSch jsch = new JSch();
jsch.setLogger(new MyLogger());
session = jsch.getSession(sshUser, sshHost, 22);
jsch.addIdentity(SshKeyFilepath, sshPassword);
config.put("StrictHostKeyChecking", "no");
config.put("ConnectionAttempts", "3");
session.setConfig(config);
session.connect();
System.out.println("SSH Connected");
Class.forName(driverName).newInstance();
int assinged_port = session.setPortForwardingL(localPort, remoteHost, remotePort);
System.out.println("localhost:" + assinged_port + " -> " + sshHost + ":" + remotePort);
System.out.println("Port Forwarded");
} catch (Exception e) {
e.printStackTrace();
}
}
ve sonunda aşağıdaki kodu kullanarak veritabanına bağlanırken:
aşağıdaben SSH bağlantısı için kullanıyorum kodudur
Class.forName("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:" + localPort, dbUser, dbPassword);
başarıyla SSH bağlantısı yapmak mümkün ama yürütme takıldığım zaman aşağıda satır: Çift komut satırında bağlayarak benim SSH ve veritabanı kimlik bilgilerini kontrol ettikten
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:" + localPort, dbUser, dbPassword);
ben am güçlü uzak ana mysql konak localhost ama host1 olmadığını
mysql -h host1 -u "myusername" -p"mypasswordhere"
sorunun nedeni olabilir varsayalım kullanarak veritabanına bağlanmak için Jdbc url'de nereye yazacağımı bilmediğim.
yerine:
int assinged_port = session.setPortForwardingL(localPort, remoteHost, remotePort);
olmalıydı
int assinged_port = session.setPortForwardingL(localPort, localSSHUrl, remotePort);
bağlantı ince çalışır
Yerel ve uzak makinenizde "asılı" iken netstat yaptınız? güvenlik duvarı/yönlendirme sorunu olabilir – Jan
"yerel" üzerinde asılı iken yerel bağlantı için kullanılan uzak bağlantı noktası – Anirudh
için tünel gibi görünüyor benim bağlantı noktası için bağlantı "ESTABLISHED" diyor. Tünel ettiğin ev sahibi için netstat var mı? – Jan