MySql连接被拒绝-Java [重复]

Posted

技术标签:

【中文标题】MySql连接被拒绝-Java [重复]【英文标题】:MySql Connection Refused - Java [duplicate] 【发布时间】:2020-04-14 16:57:55 【问题描述】:

所以今天我决定如果我将我们的数据库移动到不同的服务器,我的网站会运行得更快,所以我这样做了,你可以在下面看到我是如何连接的:

final String driver = "com.mysql.jdbc.Driver";
            final String url = "jdbc:mysql://external_ip_address_here:3306/dbname";
            final String username = "user";
            final String password = "pass";
            Class.forName(driver);

            Connection connection = DriverManager.getConnection(url, username, password);

当我连接到127.0.0.1 / localhost 时,这工作正常,现在我收到此错误:

java.net.ConnectException MESSAGE:连接被拒绝(连接被拒绝)

我的 MySQL 服务器运行的是 Ubuntu 18.04。

我添加了多个防火墙规则来尝试并允许所有传入连接到端口 3306 - sudo ufw allow from any to any port 3306 proto tcp 并且我尝试了 iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT,但仍然无法正常工作,当我端口扫描网络时它显示端口 3306 已关闭

FIX 1:这修复了连接被拒绝错误 - 第一步:编辑文件/etc/mysql/mysql.conf.d/mysqld.cnf 第 2 步:删除行 bind-address = 127.0.0.1

【问题讨论】:

external_ip_address_here 是否可达?如果启用,请尝试 ping。 很可能您没有正确配置数据库服务器上的所有内容,请检查此问题可能对您有所帮助:***.com/questions/2318250/… @Amanjangra 可访问 @Amanjangra 说 3306 端口已关闭 @MakeN 您是否尝试通过运行应用程序的盒子中的任何 sql 开发人员 IDE 连接它。 【参考方案1】:

检查服务器防火墙配置。这可能是您的问题的原因。在防火墙设置中添加允许从您的 URL 进行连接的新规则。

【讨论】:

我添加了多个防火墙规则以尝试并允许所有传入连接到端口 3306 - sudo ufw allow from any to any port 3306 proto tcp & 我尝试了 iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT,仍然无法正常工作,当我端口扫描网络时它显示端口 3306 已关闭 尝试重启iptables服务,你用的是哪个操作系统? ubuntu 18.04,此错误现在已修复,正如您在编辑后的消息中看到的那样,我遇到了一个新问题 - java.sql.SQLException: Access denied for user 'user'@'hostname' (using password: YES),我使用了正确的详细信息。 看这个,这可能对***.com/a/43088226/5804036有帮助 遗憾的是它没有,我可能会为此创建一个新问题以获得更多答案,有没有办法让我关闭这个?【参考方案2】:

这修复了连接被拒绝错误 -

第一步:编辑文件/etc/mysql/mysql.conf.d/mysqld.cnf

第 2 步:删除行 bind-address = 127.0.0.1

【讨论】:

以上是关于MySql连接被拒绝-Java [重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用标志时MySQL连接被拒绝[重复]

PHP + MYSQL + Laravel - “SQLSTATE [HY000] [2002] 连接被拒绝” [重复]

Spring Boot MySQL Docker 引起:java.net.ConnectException:连接被拒绝(连接被拒绝)

java.net.ConnectException:连接被拒绝

我无法显示来自 mysql 数据库的数据,而是告诉我访问被拒绝 [重复]

Spring Boot,Java,Docker Compose,尝试在两个容器(mysql,my-api)之间建立连接时出现“连接被拒绝”