java - Java中通过代理连接MySQL

标签 java mysql jdbc database-connection

我正在开发一个客户端-服务器软件,客户端按如下方式连接到数据库服务器。

...
try
{
   Class.forName("com.mysql.jdbc.Driver");
   Connection conexion = DriverManager.getConnection("jdbc:mysql://localhost/agenda", "root", "LA_PASSWORD");
}catch....
...

两个应用程序始终位于同一本地网络上。我遇到的问题是当本地网络使用代理时,在这种情况下MySQL连接失败。

当本地网络上的代理时,如何与 Java 编程语言、MySQL 数据库建立连接?

感谢您的帮助。 问候!

最佳答案

尝试使用 socksProxyHostsocksProxyPort 系统属性。看here在章节“2.4) socks ”和here 。 (http.proxyHost 不适用于 JDBC。)以下是使用 JDBC 代理的说明(例如 Oracle):Connect outside internet Oracle Database from inside intranet through JDBC 。您可能需要使用以下属性:socksProxySet、socksProxyPort、socksProxyHost、java.net.socks.username、java.net.socks.password、socksNonProxyHostsHere is description how to set version, username, and password 。并且ofc您需要socks代理,而不是HTTP

如果您只有 HTTP 代理,您可以尝试通过 HTTP 建立 JDBC 隧道。解决方案很少。例如,这里是免费解决方案 http://sourceforge.net/projects/sqlgateway/这里是商业http://www.idssoftware.com/jdbcdrv.html

关于java - Java中通过代理连接MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20408383/

相关文章:

java - Java 14中的NullPointerException与之前的版本有何不同?

php - 每天在 PHP/MySQL 中增加一个值

java - 准备好的语句 SQL 错误

java - 需要数组 java 帮助

java - LinkedHashMap 的 keySet() 和 values() 方法的行为

java - 尝试绘制两个数字并距中心距离相等

mysql - 在 Fedora 27/28 上启动 MariaDb/MySQL 的问题

php - 从对象分配 $_session var

java - JDBC Postgres 驱动程序是否有办法设置 "client_encoding"以连接到数据库?

java - Mysql 更新了太多行