使用JDBC驱动程序通过代理连接到MySQL

时间:2013-12-01 23:45:20

标签: java mysql jdbc proxy

在Java中,我想从位于http代理后面的客户端计算机连接到Web服务器上的MySQL服务器。我已经阅读了一些解决方案,有人说http隧道可能有效,有些人建议使用oracle中的一个非常古老的link,它不再可用。所以问题是:

我们如何从位于http代理后面的计算机连接到MySQL服务器?

1 个答案:

答案 0 :(得分:0)

您可以尝试以下代码,看看它是否有效。它通过TCP为我工作

package indika.jdbc.connectivity;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class ConnectOverProxy {
    public static void main(String[] args) {
        new ConnectOverProxy();
    }

    public ConnectOverProxy() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection conn = null;
            Properties info = new Properties();
            //info.put("proxy_type", "4"); // SSL Tunneling
            info.put("proxy_host", "[proxy host]");
            info.put("proxy_port", "[proxy port]");
            info.put("proxy_user", "[proxy user]");
            info.put("proxy_password", "[proxy password]");
            info.put("user", "[db user]");
            info.put("password", "[db pass word]");
            conn = DriverManager.getConnection("jdbc:mysql://[db host]/",info);


            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery("Select NOW()");
            rs.next();
            System.out.println("Data- " + rs.getString(1));
            rs.close();
            stmt.close();
            conn.close();

        } catch (SQLException er) {
            er.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

    }
}

另请参阅“http://www.idssoftware.com/jdbchttps.html”,但我个人并未使用过。