我有一个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并使用它,但我需要一个更好的解决方案,因为这可能不对。
答案 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个小时。他们不允许使用他们的数据库作为后端。