リモート MySQL データベース接続のための Java を使用した SSH トンネリング
Java を使用して SSH トンネル経由でリモート MySQL データベースに接続するには、効果的なアプローチJSch ライブラリを活用することです。このライブラリを使用すると、SSH2 接続を確立し、ポート転送などのさまざまな機能を利用できるようになります。
ポート 3306 でリッスンしている MySQL サーバーにリモートでアクセスすることを目的としたシナリオを考えてみましょう。ローカル マシンから SSH を確立できます。次のように JSch を使用してトンネルします:
import com.jcraft.jsch.*; public class SSHMySQLTunnel { public static void main(String[] args) throws Exception { // Replace with SSH server hostname String sshHost = "ssh.server.com"; // SSH port number int sshPort = 22; // Replace with SSH username String sshUsername = "username"; // Replace with SSH password String sshPassword = "password"; // Replace with MySQL server hostname String mysqlHost = "mysql.server.com"; // MySQL port number (assuming 3306) int mysqlPort = 3306; // Local port to forward to (1234 in this example) int localPort = 1234; JSch jsch = new JSch(); Session session = jsch.getSession(sshUsername, sshHost, sshPort); session.setPassword(sshPassword); session.connect(); int assingedPort = session.setPortForwardingL(localPort, mysqlHost, mysqlPort); System.out.println("SSH tunnel established. Forwarded port " + localPort + " to " + mysqlHost + ":" + mysqlPort); // Establish JDBC connection to MySQL using the tunnel String jdbcUrl = "jdbc:mysql://localhost:" + localPort + "/[database]"; // ... } }
SSH トンネルが確立されたら、MySQL への JDBC 接続を利用できます。通常どおり、SSH トンネルで指定されたローカル ポート (1234) を使用します。
以上がJava を使用して SSH トンネル経由でリモート MySQL データベースに接続するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。