首页 > 数据库 > mysql教程 > 如何使用Java通过SSH隧道连接远程MySQL数据库?

如何使用Java通过SSH隧道连接远程MySQL数据库?

Patricia Arquette
发布: 2024-12-01 20:00:13
原创
353 人浏览过

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

使用 Java 进行 SSH 隧道以实现远程 MySQL 数据库连接

使用 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 隧道后,您可以像平常一样使用本地端口使用 JDBC 连接到 MySQL (1234) 在 SSH 隧道中指定。

以上是如何使用Java通过SSH隧道连接远程MySQL数据库?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板