ホームページ >データベース >mysql チュートリアル >Java を使用して SSH トンネル経由でリモート MySQL データベースに接続するにはどうすればよいですか?
リモート 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 サイトの他の関連記事を参照してください。