使用HTTPS URL连接到远程mysql数据库

时间:2013-11-11 00:31:44

标签: java mysql jdbc

我有一个sourceforge托管的MySQL数据库,连接URL如下:

https://mysql-t.sourceforge.net:3306/"db_name"

我想使用JDBC连接到这个数据库。 我的连接URL如下:

jdbc:mysql://https://mysql-t.sourceforge.net:3306

但是,我一直收到以下错误

java.sql.SQLException: Must specify port after ':' in connection string

我认为,原因是https://部分始终期待:符号之后的端口,例如https://<port#>

我可能会使用getInetAddress()来检索IP并使用它,但我需要一个更好的解决方案,因为这可能不对。

2 个答案:

答案 0 :(得分:4)

您的网址不应包含http或https。试试this

jdbc:mysql://mysql-t.sourceforge.net:3306/db_name

您可能认为必须包含http或https,因为您的客户端在Internet上看不到端口3306。很高兴它不是。如果它对你来说是可见的,那么其他人也可以看到它。

您需要在客户端和数据库之间使用中间servlet。客户端可以通过http端口80或https端口443联系servlet.servlet将对它们进行身份验证和授权,验证和绑定参数,代表他们向数据库发出请求,并发送相应的响应。

您不应该让任何人使用root或admin凭据来访问该数据库。您应该仅为该应用创建凭证,仅访问一个数据库,仅允许执行该任务所需的操作。

答案 1 :(得分:0)

问题已解决。

1)访问URL与提供的URL不同。我从sourceforge论坛发现,其他用户遇到了类似的问题。

2)端口号不同。它工作在4040而不是3306.

3)Sourceforge显然不允许永久访问其数据库。它仅在要求下工作,一次只能工作4个小时。他们不允许使用他们的数据库作为后端。