Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用HTTPS URL连接到远程mysql数据库_Java_Mysql_Jdbc - Fatal编程技术网

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

Java 使用HTTPS URL连接到远程mysql数据库,java,mysql,jdbc,Java,Mysql,Jdbc,我有一个sourceforge托管的MySQL数据库,连接URL如下: https://mysql-t.sourceforge.net:3306/"db_name" jdbc:mysql://https://mysql-t.sourceforge.net:3306 我想使用JDBC连接到此数据库。 我的连接URL如下所示: https://mysql-t.sourceforge.net:3306/"db_name" jdbc:mysql://https://mysql-t.sourcefo

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

https://mysql-t.sourceforge.net:3306/"db_name"
jdbc:mysql://https://mysql-t.sourceforge.net:3306
我想使用JDBC连接到此数据库。 我的连接URL如下所示:

https://mysql-t.sourceforge.net:3306/"db_name"
jdbc:mysql://https://mysql-t.sourceforge.net:3306
然而,我不断得到以下错误

java.sql.SQLException: Must specify port after ':' in connection string
我认为这是因为
https://
部分一直希望在
符号之后有一个端口,就像
https://


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

您的URL不应包含http或https。像这样尝试:

您可能认为必须包含http或https,因为端口3306在Internet上对您的客户端不可见。很高兴不是这样。如果你看得见,其他人也看得见

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


您不应该允许任何人使用root或admin凭据访问该数据库。您应该只为该应用程序创建凭据,只访问一个数据库,只允许执行该作业所需的操作。

您的URL不应包括http或https。像这样尝试:

您可能认为必须包含http或https,因为端口3306在Internet上对您的客户端不可见。很高兴不是这样。如果你看得见,其他人也看得见

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

您不应该允许任何人使用root或admin凭据访问该数据库。您应该只为该应用程序创建凭据,只访问一个数据库,只允许执行作业所需的操作。

问题已修复

1) 访问URL与提供的不同。我在sourceforge论坛上发现其他用户也有类似的问题

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

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

问题已修复

1) 访问URL与提供的不同。我在sourceforge论坛上发现其他用户也有类似的问题

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


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

https://表示应在端口443上建立SSL连接,后续流量将是HTTP内容。这与MySQL连接没有任何关系。从url中删除
https://
,然后重试。请注意,这将不是一个安全连接我已经尝试过了,但它给了我一个
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications link failure
如果您不能远程登录到该服务器和端口,jdbc也将无法连接。https://表示应该在端口443上建立SSL连接,随后的流量将是HTTP内容。这与MySQL连接没有任何关系。从url中删除
https://
,然后重试。请注意,这将不是一个安全的连接我已经尝试过了,但是它给了我一个
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications link failure
如果你不能远程登录到该服务器和端口,jdbc也将无法连接。这个特定的数据库只给用户选择的权限,因此,我认为这样可以降低风险。通过这种方式,Sourceforge非常棒,因为它根据访问级别为我提供了单独的用户名和密码。这个特定的数据库只为用户提供选择权限,所以我认为这样可以降低风险。这样,Sourceforge就很棒了,因为它根据访问级别为我提供了单独的用户名和密码。