>데이터 베이스 >MySQL 튜토리얼 >Java를 사용하여 SSH 터널을 통해 원격 MySQL 데이터베이스에 어떻게 연결할 수 있습니까?

Java를 사용하여 SSH 터널을 통해 원격 MySQL 데이터베이스에 어떻게 연결할 수 있습니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-01 20:00:13352검색

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 연결을 활용할 수 있습니다. (1234)가 SSH 터널에 지정되었습니다.

위 내용은 Java를 사용하여 SSH 터널을 통해 원격 MySQL 데이터베이스에 어떻게 연결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.