java程序 通过SSH连接Mysql
先引入jsch依赖
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.53</version>
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 {
/**
* Java Program to connect to the remote database through SSH using port forwarding
* @author Pankaj@JournalDev
* @throws SQLException
*/
public static void main(String[] args) throws SQLException {
int lport= 5656 ;
String rhost= "secure.journaldev.com" ;
String host= "secure.journaldev.com" ;
int rport= 3306 ;
String user= "sshuser" ;
String password= "sshpassword" ;
String dbuserName = "mysql" ;
String dbpassword = "mysql123" ;
String url = "jdbc:mysql://localhost:" +lport+ "/mydb" ;
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, 22 );
session.setPassword(password);
session.setConfig(config);
session.connect();
System.out.println( "Connected" );
int assinged_port=session.setPortForwardingL(lport, rhost, rport);
System.out.println( "localhost:" +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();
}
}
}
}
会打印以下内容
Connected
localhost:5656 -> secure.journaldev.com:3306
Port Forwarded
Database connection established
DONE
Closing Database Connection
Closing SSH Connection

浙公网安备 33010602011771号