无法连接到Mariadb Xampp数据库

问题描述 投票:1回答:1

我正在尝试通过eclipse和tomcat连接到本地MariaDB数据库。当我运行程序时,我收到此消息:

java.sql.SQLNonTransientConnectionException: Could not connect to localhost:8080 : unexpected end of stream, read 0 bytes from 4 (socket was closed by server)
    at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.get(ExceptionMapper.java:240)
    at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.getException(ExceptionMapper.java:171)
    at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:1132)
    at org.mariadb.jdbc.internal.util.Utils.retrieveProxy(Utils.java:561)
    at org.mariadb.jdbc.MariaDbConnection.newConnection(MariaDbConnection.java:175)
    at org.mariadb.jdbc.Driver.connect(Driver.java:92)

这是我正在执行的代码:

public void verbinde() {
        Connection conn = null;
          Statement stmt = null;
          try {
              //STEP 2: Register JDBC driver
              Class.forName("org.mariadb.jdbc.Driver");

              //STEP 3: Open a connection
              System.out.println("Connecting to a selected database...");
              conn = DriverManager.getConnection(
                      "jdbc:mariadb://localhost:8080/test?user=root&password=root");
              System.out.println("Connected database successfully...");

              //STEP 4: Execute a query
              System.out.println("Creating table in given database...");
              stmt = conn.createStatement();

              String sql = "CREATE TABLE REGISTRATION "
                      + "(id INTEGER not NULL, "
                      + " first VARCHAR(255), "
                      + " last VARCHAR(255), "
                      + " age INTEGER, "
                      + " PRIMARY KEY ( id ))";

              stmt.executeUpdate(sql);
              System.out.println("Created table in given database...");
          } catch (SQLException se) {
              //Handle errors for JDBC
              se.printStackTrace();
          } catch (Exception e) {
              //Handle errors for Class.forName
              e.printStackTrace();
          } finally {
              //finally block used to close resources
              try {
                  if (stmt != null) {
                      conn.close();
                  }
              } catch (SQLException se) {
              }// do nothing
              try {
                  if (conn != null) {
                      conn.close();
                  }
              } catch (SQLException se) {
                  se.printStackTrace();
              }//end finally try
          }//end try
          System.out.println("Goodbye!");
      }//end main
    //end JDBCExample
java tomcat jdbc xampp mariadb
1个回答
1
投票

MariaDB的默认端口是3306而不是8080

jdbc:mariadb://localhost:3306/test?user=root&password=root

8080是您的tomcat运行的端口

BTW:使用try-with-resources代替try-catch-finally块

© www.soinside.com 2019 - 2024. All rights reserved.