我有一个sourceforge托管的MySQL数据库,连接地址如下:
https://mysql-t.sourceforge.net:3306/"db_name"
我想使用JDBC连接到此数据库。我的连接地址如下:
jdbc:mysql://https://mysql-t.sourceforge.net:3306
但是,我一直收到以下错误
java.sql.SQLException: Must specify port after ':' in connection string
我相信,这样做的原因是https://
部分一直在等待:
符号之后的端口,比如https://<port#>
我也许可以使用getInetAddress()
来检索IP并使用它,但我需要一个更好的解决方案,因为这可能是不正确的。
发布于 2013-11-11 01:12:50
问题已修复。
1)访问URL与提供的URL不同。我在sourceforge论坛上发现了这一点,其他用户也有类似的问题。
2)端口号不一致。它工作在4040,而不是3306。
3) Sourceforge显然不允许永久访问他们的数据库。它只在请求时工作,并且一次只能工作4小时。他们不允许使用他们的数据库作为后端。
发布于 2013-11-11 00:35:34
您的URL不应包含http或https。像this一样尝试一下
jdbc:mysql://mysql-t.sourceforge.net:3306/db_name
您可能会认为您必须包含http或https,因为端口3306对Internet上的客户端不可见。庆幸它不是。如果它对你是可见的,那么其他所有人也都是可见的。
在客户端和数据库之间需要一个中间servlet。客户端可以通过http端口80或https端口443联系servlet。servlet将对它们进行身份验证和授权,验证和绑定参数,代表它们向数据库发出请求,并发送适当的响应。
您不应该允许任何人使用root或管理员凭据来访问该数据库。您应该只为该应用程序创建凭据,只访问一个数据库,只允许执行该工作所需的操作。
https://stackoverflow.com/questions/19897067
复制