我的想法是这样的:提供者不允许外部mysql请求。我已经寻找了几个小时的解决方案来连接本地java和远程服务器java。然后远程java服务器将发出mysql请求并将其发回。我有什么想法吗?
发布于 2016-04-09 13:14:41
您可以使用端口转发来完成这个任务,也可以使用ssh设置隧道。因此,不需要编写java服务器程序。
最后一个链接有一个关于您的问题的例子,虽然它连接到一个PostgreSQL数据库,但我将该信息翻译到下面的MySQL。
这里的一个例子是当您需要连接到数据库控制台时,该控制台只允许出于安全原因进行本地连接。假设您在服务器上运行MySQL,默认情况下,该服务器侦听端口3306。
$ ssh -L 9000:localhost:3306 user@example.com这里更改的部分是localhost:3306,它要求将连接从本地端口9000转发到服务器上的localhost:3306。现在,我们可以简单地连接到数据库。
$ mysql -h localhost -p 9000现在您应该能够将本地jdbc程序与url jdbc:mysql://localhost:9000/dbname连接起来,并且它将被隧道化到远程数据库,而远程数据库将将您的隧道连接视为本地连接。
Connection c = DriverManager.getConnection("jdbc:mysql://localhost:9000/dbname","username", "password");https://stackoverflow.com/questions/36516545
复制相似问题