【问题标题】:MySql Connection Refused - Java [duplicate]MySql连接被拒绝-Java [重复]
【发布时间】: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。
  • 很可能您没有正确配置数据库服务器上的所有内容,请检查此问题可能对您有所帮助:stackoverflow.com/questions/2318250/…
  • @Amanjangra 可访问
  • @Amanjangra 说 3306 端口已关闭
  • @MakeN 您是否尝试通过运行应用程序的盒子中的任何 sql 开发人员 IDE 连接它。

标签: java mysql jdbc


【解决方案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),我使用了正确的详细信息。
  • 看这个,这可能对stackoverflow.com/a/43088226/5804036有帮助
  • 遗憾的是它没有,我可能会为此创建一个新问题以获得更多答案,有没有办法让我关闭这个?
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 2023-03-21
    • 2019-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-07
    • 1970-01-01
    • 2021-03-16
    • 2021-05-11
    相关资源
    最近更新 更多