MySQL Java hat keinen Zugriff auf MySQL

XiXDev

Mitglied
Hallo ich habe da so ein Problem PHP kann auf MySQL zugreifen und Java nicht 🙁
Und auf meinem anderen Server funktioniert alles einwandfrei!
Hier der Code dazu! // Es werden übrigens in Eclipse keine Fehler angezeigt
Code:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class MySQL {
   
    private final String HOST;
    private final String DATABASE;
    private final String USER;
    private final String PASSWORD;
    private Connection con;
    public MySQL(String host, String database, String user, String password) {
        this.HOST = host;
        this.DATABASE = database;
        this.USER = user;
        this.PASSWORD = password;
        connect();
    }
    public void connect() {
        try {
            con = DriverManager.getConnection("jdbc:mysql://" + HOST + ":3306/" + DATABASE + "?autoReconnect=true",
                    USER, PASSWORD);
            System.out.println("[MySQL] Die Verbindung zur MySQL wurde hergestellt!");
        } catch (SQLException e) {
            System.out.println("[MySQL] Die Verbindung zur MySQL ist fehlgeschlagen! Fehler: " + e.getMessage());
        }
    }
    public void close() {
        try {
            if (con != null) {
                con.close();
                System.out.println("[MySQL] Die Verbindung zur MySQL wurde Erfolgreich beendet!");
            }
        } catch (SQLException e) {
            System.out.println("[MySQL] Fehler beim beenden der Verbindung zur MySQL! Fehler: " + e.getMessage());
        }
    }
    public void update(String qry) {
        Statement st = null;
        try {
            st = con.createStatement();
            st.executeUpdate(qry);
        } catch (Exception e) {
            connect();
            System.err.println(e);
        }
        closeStatement(st);
    }
    public ResultSet query(String qry) {
        ResultSet rs = null;
        try {
            Statement st = con.createStatement();
            rs = st.executeQuery(qry);
        } catch (SQLException e) {
            connect();
            System.err.println(e);
        }
        return rs;
    }
   
    public static void closeStatement(Statement st){
        if(st != null)
            try {
                st.close();
            }catch (Exception e) {
                e.printStackTrace();
            }
    }
   
    public static void closeResultset(ResultSet rs){
        if(rs != null)
            try {
                rs.close();
            }catch (Exception e) {
                e.printStackTrace();
            }
    }
}
Und
Code:
import java.sql.ResultSet;
import java.sql.SQLException;
public class Method_PlayerUUID {
   
    public static boolean playerExists(String name) {
        ResultSet rs = main.mysql.query("select * from uuids where name= '" + name.toLowerCase() + "'");
        try {
            if (rs.next()) {
                if (rs.getString("name") != null) {
                    MySQL.closeResultset(rs);
                    return true;
                }
            }
        } catch (SQLException e) {}
        MySQL.closeResultset(rs);
        return false;
    }
    public static void createPlayerData(String name, String uuid) {
        if (!playerExists(name)) {
            main.mysql.update("insert into uuids (name, uniqueid, playername) values ('" + name.toLowerCase() + "','" + uuid + "', '" + name + "');");
        }
        setName(name, uuid);
    }
   
    public static String getUUID(String name){
        ResultSet rs = main.mysql.query("select * from uuids where name= '" + name.toLowerCase() + "'");
        try {
            if (rs.next()) {
                String uuid = rs.getString("uniqueid");
                MySQL.closeResultset(rs);
                return uuid;
            }
        } catch (SQLException e) {}
        MySQL.closeResultset(rs);
        return "null";
    }
   
    public static String getName(String name){
        ResultSet rs = main.mysql.query("select * from uuids where name= '" + name.toLowerCase() + "'");
        try {
            if (rs.next()) {
                String uuid = rs.getString("playername");
                MySQL.closeResultset(rs);
                return uuid;
            }
        } catch (SQLException e) {}
        MySQL.closeResultset(rs);
        return "null";
    }
   
    public static void setName(String name, String uuid){
        main.mysql.update("update uuids set name= '" + name.toLowerCase() + "' where uniqueid= '" + uuid + "';");
    }
}
Hoffe auf schnelle Hilfe. 😀
 
Nö, ggf. hast Du ihn in Debian installiert. Unabhängig davon, muss er sich auch im Classpath befinden. Was bekommst Du denn für eine Fehlermeldung? Vermutlich no suitable driver...
 
Der Fehler ist
Code:
10:59:27 [INFORMATION] [MySQL] Die Verbindung zur MySQL ist fehlgeschlagen! Fehler: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
10:59:31 [INFORMATION] [MySQL] Die Verbindung zur MySQL ist fehlgeschlagen! Fehler: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
10:59:31 [SCHWERWIEGEND] java.lang.NullPointerException
10:59:35 [INFORMATION] [MySQL] Die Verbindung zur MySQL ist fehlgeschlagen! Fehler: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
10:59:35 [SCHWERWIEGEND] java.lang.NullPointerException
10:59:39 [INFORMATION] [MySQL] Die Verbindung zur MySQL ist fehlgeschlagen! Fehler: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
10:59:39 [SCHWERWIEGEND] java.lang.NullPointerException
10:59:43 [INFORMATION] [MySQL] Die Verbindung zur MySQL ist fehlgeschlagen! Fehler: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
10:59:43 [SCHWERWIEGEND] java.lang.NullPointerException
10:59:47 [INFORMATION] [MySQL] Die Verbindung zur MySQL ist fehlgeschlagen! Fehler: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
10:59:47 [SCHWERWIEGEND] java.lang.NullPointerException
 
Dann scheint der Treiber geladen zu sein. Überprüf mal Deine Einstellungen (host, port, user, pw), bzw. stell sicher, dass der DB-Server unter host/port auch erreichbar ist.
 
Kann es sein, dass die DB auf einem externen Server liegt und dort auch das PHP Script, dein Java Client aber Lokal bei dir? Dann ist es möglich, dass einfach keine externe SQL Verbindung erlaubt ist bei dem Hoster.
 
Ich vermute das selbe wie @Thallius , dein MySQL Port scheint einfach nicht nach außen offen zu sein (das ist die Standardeinstellung). Da dein PHP Script aber wahrscheinlich auf dem selben Server liegt, ist das kein Problem, da der MySQL Server Verbindungen von localhost zulässt.
 

Neue Themen


Zurück
Oben