ホームページ >データベース >mysql チュートリアル >Java を使用して SSH トンネル経由でリモート MySQL データベースに接続するにはどうすればよいですか?

Java を使用して SSH トンネル経由でリモート MySQL データベースに接続するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-01 20:00:13351ブラウズ

How Can I Connect to a Remote MySQL Database via SSH Tunnel Using Java?

リモート 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。