到mysql的java SSH连接出现错误,无法绑定本地端口

到mysql的java SSH连接出现错误,无法绑定本地端口,java,mysql,ssh,jsch,Java,Mysql,Ssh,Jsch,当我试图通过SSH连接从我的pc连接远程服务器中的mysql时,我收到以下错误消息。 我安装了所有必需的ssh、Java JAR和trust。我可以访问ssh,但无法访问mysql DB。我不知道我到底出了什么问题。下面的代码显示端口和ssh会话的变量: 错误消息如下: com.jcraft.jsch.JSchException: PortForwardingL: local port 127.0.0.1:3306 cannot be bound. at com.jcraft.js

当我试图通过SSH连接从我的pc连接远程服务器中的mysql时,我收到以下错误消息。 我安装了所有必需的ssh、Java JAR和trust。我可以访问ssh,但无法访问mysql DB。我不知道我到底出了什么问题。下面的代码显示端口和ssh会话的变量:

错误消息如下:

   com.jcraft.jsch.JSchException: PortForwardingL: local port 127.0.0.1:3306 cannot be bound.
    at com.jcraft.jsch.PortWatcher.<init>(PortWatcher.java:158)
    at com.jcraft.jsch.PortWatcher.addPort(PortWatcher.java:110)
    at com.jcraft.jsch.Session.setPortForwardingL(Session.java:1847)
    at com.jcraft.jsch.Session.setPortForwardingL(Session.java:1828)
    at com.jcraft.jsch.Session.setPortForwardingL(Session.java:1809)
    at com.jcraft.jsch.Session.setPortForwardingL(Session.java:1792)
    at connectsshserver.CTestDriver.doSshTunnel(CTestDriver.java:29)
    at connectsshserver.CTestDriver.main(CTestDriver.java:47)
Caused by: java.net.BindException: Address already in use: JVM_Bind
    at java.net.DualStackPlainSocketImpl.bind0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketBind(DualStackPlainSocketImpl.java:106)
    at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)
    at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:190)
    at java.net.ServerSocket.bind(ServerSocket.java:375)
    at java.net.ServerSocket.<init>(ServerSocket.java:237)
    at com.jcraft.jsch.PortWatcher.<init>(PortWatcher.java:150)
这行显示错误

session.setPortForwardingL(
                nLocalPort, strRemoteHost, nRemotePort);

我刚刚试过你的代码(除了注释掉端口转发后运行的mysql代码)。一切都对我有效-在呼叫会话中没有错误。setPortForwardingL。

谢谢你@RBH可以帮助正确断开会话连接你的mysql在另一台服务器上,对吗?我想您不知道JSch是如何工作的,它使您能够连接到另一台服务器。您正在运行的代码位于本地计算机上。getConnection(“jdbc:mysql://127.0.0.1:"-这一行看起来你在建立远程连接后试图连接到本地计算机,这没有意义。谢谢@NicholasK看起来你是对的我如何显示连接到远程服务器数据库的连接首先尝试建立从本地计算机到远程数据库的连接,然后你可以使用相同的详细信息通过您的代码连接。@NicholasK Yes我使用putty通过SSH会话连接DB,但我想知道我必须在上面输入什么连接字符串才能连接到远程服务器与您使用putty连接的主机名相同
session.setPortForwardingL(
                nLocalPort, strRemoteHost, nRemotePort);