java.net.ConnectException:连接被拒绝
Posted
技术标签:
【中文标题】java.net.ConnectException:连接被拒绝【英文标题】:java.net.ConnectException: Connection refused 【发布时间】:2015-05-18 05:27:55 【问题描述】:我正在尝试连接到远程服务器上的 mysql 数据库,每当我尝试运行代码时,它都会给我连接被拒绝异常。
Connection con = null;
String driver = "com.mysql.jdbc.Driver";
String url1="jdbc:mysql://IPADDRESS:3306/";
String db = "hola";
String dbUser = "root";
String dbPasswd = "root";
Class.forName(driver).newInstance();
con = DriverManager.getConnection(url1+db, dbUser, dbPasswd);
System.out.println("Database Connection Established");
另外,当我在端口 3306 上使用该 IP 进行远程登录时,它给我的连接被拒绝。 如何确保我的服务器通过端口 3306 侦听连接?
【问题讨论】:
您可能无权访问该数据库。 您的连接应该适合该 IP 如果您的端口号和ip正确,请在禁用目标系统的防火墙后尝试 我已禁用该远程系统上的防火墙,我已在远程系统中mysql的my.cnf文件中将绑定地址添加到0.0.0.0。当我通过该端口 3306 远程登录系统 Ip 时,它给我的连接被拒绝。谁能告诉我如何让远程服务器接受端口 3306 上的连接 【参考方案1】:java.net.ConnectException: Connection refused
表示您输入的IP地址或端口号不正确!
【讨论】:
不一定。还有其他可能的解释。【参考方案2】:在该 IP:port 上没有任何监听。检查 IP:port 是否正确,MySQL 是否安装在该端口上,并且它正在运行。
与这里的其他答案相反,它与用户名、密码或权限无关,几乎可以肯定也与防火墙无关,除非你有古董。
【讨论】:
你能告诉我如何让服务器通过端口 3306 监听连接 @SanjayRapolu - 通过确保 MySQL 已安装、正确配置以及 MySQL 服务已启动。 (3306 是默认端口...)【参考方案3】:一般来说,当您收到java.net.ConnectException: Connection refused
时,通常是因为以下原因:
-
服务器未启动。当您 ping 主机或尝试从浏览器访问主机时会发生什么情况?您的项目的主机名可能存在拼写错误。
您的防火墙阻止访问。禁用防火墙并重试
您使用了错误的端口。如果您可以访问服务器,请查看它配置的端口以及您的客户端连接参数是否匹配。
您尚未配置 SSL。 端点是否使用 https?这更特定于连接 Web 服务而不是数据库,但如果您没有正确处理证书,您将收到连接被拒绝错误。
【讨论】:
第 1 点自相矛盾。如果“服务器未启动”并且您无法 ping 主机,您将不会收到“连接被拒绝”。你会得到一个超时。哦。如果您可以 ping 主机,那么如果 MySQL 服务(不是服务器)尚未启动,您可能会收到“连接被拒绝”。 肯定不是因为你也没有配置SSL。这会导致不同的问题。 @user207421 - 这会导致什么问题?【参考方案4】:我已经找到了问题的解决方案。我的服务器没有监听 3306 端口的连接,我做了必要的配置
谢谢大家
【讨论】:
所以请接受您的正确答案,这样我们可以很容易地看到问题已经解决。见accepting answers。 ;) 没有。请接受已经说过的现有答案之一作为正确答案。 @蓝色以上是关于java.net.ConnectException:连接被拒绝的主要内容,如果未能解决你的问题,请参考以下文章
java.net.ConnectException: Connection refused
java.net.ConnectException:连接被拒绝
Tomcat:java.net.ConnectException:连接被拒绝
Hadoop:java.net.ConnectException:连接被拒绝
Spring Boot MySQL Docker 引起:java.net.ConnectException:连接被拒绝(连接被拒绝)