【问题标题】:Why have error when i change localhost to my host on the server?当我将 localhost 更改为服务器上的主机时,为什么会出现错误?
【发布时间】:2016-06-06 07:49:23
【问题描述】:
import java.sql.*;
import javax.swing.*;
public class Connect {
     Connection con=null;

        public static Connection ConnectDB(){
             try{

          Class.forName("com.mysql.jdbc.Driver");
        Connection con = DriverManager.getConnection("jdbc:mysql://cybersolutionstoreco.ipagemysql.com:3306/java?useUnicode=true&characterEncoding=UTF-8","myuser","mypassword");
         //System.out.println("Connect Success");
          return con;

        }catch(ClassNotFoundException | SQLException e){
            JOptionPane.showMessageDialog(null, e);
            return null;
    }      
}
}

如果我将 url 更改为“localhost:3306/java?useUnicode=true&characterEncoding=UTF-8”,此代码可以在我的机器上运行。我不知道为什么它显示如下错误。请帮帮我。

com.mysql.jdbc.CommunicationsException:通信链接失败 由于潜在的异常:

** BEGIN NESTED EXCEPTION ** 

java.net.ConnectException
MESSAGE: Connection refused: connect

STACKTRACE:

java.net.ConnectException: Connection refused: connect
  at java.net.DualStackPlainSocketImpl.connect0(Native Method)
  at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
  at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
  at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
  at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
  at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
  at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
  at java.net.Socket.connect(Socket.java:589)
  at java.net.Socket.connect(Socket.java:538)
  at java.net.Socket.<init>(Socket.java:434)
  at java.net.Socket.<init>(Socket.java:244)
  at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256)
  at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:271)
  at com.mysql.jdbc.Connection.createNewIO(Connection.java:2771)
  at com.mysql.jdbc.Connection.<init>(Connection.java:1555)
  at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
  at java.sql.DriverManager.getConnection(DriverManager.java:664)
  at java.sql.DriverManager.getConnection(DriverManager.java:247)
  at myfirstproject.Connect.ConnectDB(Connect.java:29)
  at myfirstproject.Login.txtpasswordKeyPressed(Login.java:108)
  at myfirstproject.Login.access$200(Login.java:13)
  at myfirstproject.Login$3.keyPressed(Login.java:87)
  at java.awt.Component.processKeyEvent(Component.java:6493)
  at javax.swing.JComponent.processKeyEvent(JComponent.java:2832)
  at java.awt.Component.processEvent(Component.java:6312)
  at java.awt.Container.processEvent(Container.java:2236)
  at java.awt.Component.dispatchEventImpl(Component.java:4891)
  at java.awt.Container.dispatchEventImpl(Container.java:2294)
  at java.awt.Component.dispatchEvent(Component.java:4713)
  at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1954)
  at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:806)
  at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1074)
  at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:945)
  at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:771)
  at java.awt.Component.dispatchEventImpl(Component.java:4762)
  at java.awt.Container.dispatchEventImpl(Container.java:2294)
  at java.awt.Window.dispatchEventImpl(Window.java:2750)
  at java.awt.Component.dispatchEvent(Component.java:4713)
  at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
  at java.awt.EventQueue.access$500(EventQueue.java:97)
  at java.awt.EventQueue$3.run(EventQueue.java:709)
  at java.awt.EventQueue$3.run(EventQueue.java:703)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
  at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
  at java.awt.EventQueue$4.run(EventQueue.java:731)
  at java.awt.EventQueue$4.run(EventQueue.java:729)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
  at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
  at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
  at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
  at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
  at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
  at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
  at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)


** END NESTED EXCEPTION **



Last packet sent to the server was 4 ms ago.
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
  at myfirstproject.Login.txtpasswordKeyPressed(Login.java:109)
  at myfirstproject.Login.access$200(Login.java:13)
  at myfirstproject.Login$3.keyPressed(Login.java:87)
  at java.awt.Component.processKeyEvent(Component.java:6493)
  at javax.swing.JComponent.processKeyEvent(JComponent.java:2832)
  at java.awt.Component.processEvent(Component.java:6312)
  at java.awt.Container.processEvent(Container.java:2236)
  at java.awt.Component.dispatchEventImpl(Component.java:4891)
  at java.awt.Container.dispatchEventImpl(Container.java:2294)
  at java.awt.Component.dispatchEvent(Component.java:4713)
  at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1954)
  at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:806)
  at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1074)
  at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:945)
  at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:771)
  at java.awt.Component.dispatchEventImpl(Component.java:4762)
  at java.awt.Container.dispatchEventImpl(Container.java:2294)
  at java.awt.Window.dispatchEventImpl(Window.java:2750)
  at java.awt.Component.dispatchEvent(Component.java:4713)
  at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
  at java.awt.EventQueue.access$500(EventQueue.java:97)
  at java.awt.EventQueue$3.run(EventQueue.java:709)
  at java.awt.EventQueue$3.run(EventQueue.java:703)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
  at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
  at java.awt.EventQueue$4.run(EventQueue.java:731)
  at java.awt.EventQueue$4.run(EventQueue.java:729)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
  at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
  at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
  at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
  at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
  at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
  at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
  at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
BUILD SUCCESSFUL (total time: 11 seconds)

【问题讨论】:

  • mysql 很可能只绑定到localhost:3306 而不是*:3306
  • “连接被拒绝” ...有什么不清楚的地方?检查您的服务器是否侦听传入消息并检查连接?
  • 那么如何解决这个问题呢?
  • 出于安全原因,默认情况下,远程连接(即来自 localhost 以外的任何连接)在 MySQL 上被禁用。 Configure your MySQL 以便它允许远程连接。
  • 参见 MySQL 手册中的Troubleshooting Problems Connecting to MySQL

标签: java mysql


【解决方案1】:

您的问题可能有多种解决方案:

  1. 您的机器上是否有正在运行的 MySQL 实例?
  2. 如果有,您使用的端口是否正确?
  3. 您是否尝试过只使用不带参数的localhost:3306

如果在您的机器而不是您的代码出现问题之前连接正常。您提供的代码对我来说看起来不错。

希望对您有所帮助。

【讨论】:

  • 当我使用 localhost:3306 时工作正常,但是当我将数据库上传到服务器并且我想连接到服务器时,它显示上面的错误。我不知道这个错误。我已经测试了我的服务器,一切正常。
猜你喜欢
  • 2015-05-09
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 2021-10-13
  • 2020-02-11
  • 1970-01-01
  • 2015-04-06
  • 2021-08-10
相关资源
最近更新 更多