有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

mysql连接超时:连接JAVA和Wampserver

我需要关于数据库连接时间错误的帮助,我正在使用wamp服务器 我可以访问PHPMyAdmin并抛出这个链接“192.168.1.88/PHPMyAdmin”,它工作正常,但我在NetBeans中遇到了一个超时错误,我尝试在PC和它之间ping工作正常

以下是堆栈跟踪:

  java.net.SocketException
  MESSAGE: java.net.ConnectException: Connection timed out: connect

  STACKTRACE:

  java.net.SocketException: java.net.ConnectException: Connection timed out: connect
  at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:156)
  at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:276)
  at com.mysql.jdbc.Connection.createNewIO(Connection.java:2666)
  at com.mysql.jdbc.Connection.<init>(Connection.java:1531)
  at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
  at java.sql.DriverManager.getConnection(DriverManager.java:664)
  at java.sql.DriverManager.getConnection(DriverManager.java:247)
  at assurancebensaidv2.jdbcManager.<init>(jdbcManager.java:38)
  at assurancebensaidv2.Login.<init>(Login.java:37)
  at assurancebensaidv2.Login$8.run(Login.java:761)
  at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
  at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
  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.awt.EventQueue.dispatchEvent(EventQueue.java:726)
  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)

以下是我的代码片段:

public class jdbcManager {

    public HashMap<String, String> item = new HashMap<>();
    public static Connection conn;
    private Statement s;
    private ResultSet rs;

    public jdbcManager() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException ex) {
            javax.swing.JOptionPane.showMessageDialog(null, "Erreur Driver  ", "Etat de L'opération", javax.swing.JOptionPane.INFORMATION_MESSAGE);
            Logger.getLogger(jdbcManager.class.getName()).log(Level.SEVERE, null, ex);
        }
        //===================================================================
        try {
            conn = DriverManager.getConnection("jdbc:mysql://192.168.1.88:3306/agenceassurance", "root", "12345");
        } catch (SQLException ex) {
            System.out.println(ex.getMessage());
          //  javax.swing.JOptionPane.showMessageDialog(null, "Erreur Connection Base de donnée", "Etat de L'operation", javax.swing.JOptionPane.INFORMATION_MESSAGE);
         }
    }}

共 (1) 个答案

  1. # 1 楼答案

    当您试图从远程机器连接到MySQL时,需要在MySQL服务器上创建一个允许从远程ip连接的帐户

    默认情况下,出于明显的安全原因,根帐户设置为只允许从运行MySQL服务器的机器连接到MySQL服务器

    不要更改root以允许远程连接创建一个新的用户帐户,该帐户只允许查看要连接的单个数据库