MySQL8.0
Hej Gruppe.
Jeg er ved at bygge mig en VPN Gateway server til Mit arbejde, Men er rendt ind i et sjovt problem.
Jeg har programmeret mit site i JSP - med en MySQL Database til.
Fordi der er CTE inkluderet i MySQL8.0+ har vi valgt at opgradere - men nu kan jeg slet ikke få mit site til at bruge min MySQL Database.
System: Debian9
MySQL: 8.0.11 (Tidligere 5.7.20)
Det mest frustrerende er hvilkernb fejl jeg får i resins jvmlog:
Selve brugeren jeg har lavet i JSP/mysql er testet flere gange - kan sagtens logge ind og har de rigtige rettigheder. Miot umiddelbare bud er det er JDBC driveren der driller
Heldighvis(troede jeg ) var MySQL udkommet med en JDBC connecter som deb package --> mysql-connector-java_8.0.11-1debian9_all.deb
Denne er installeret - men jeg kan simpelthen ikke få det til at spille - og konstant får jeg samme fejl som vist ovenover.
Jeg har testet og lagt *.jar filen både i Resin lib - men også sitet WEB-INF/lib - Men uanset hvad - så fejler det
Her er min MySQL Driver jeg har lavet i sin tid - denne er tilrettet efter de nye Paths:
Er der nogen der kan fortælle mig hvor det går galt her - siden den ikke vil logge ind mere
Jeg er ved at bygge mig en VPN Gateway server til Mit arbejde, Men er rendt ind i et sjovt problem.
Jeg har programmeret mit site i JSP - med en MySQL Database til.
Fordi der er CTE inkluderet i MySQL8.0+ har vi valgt at opgradere - men nu kan jeg slet ikke få mit site til at bruge min MySQL Database.
System: Debian9
MySQL: 8.0.11 (Tidligere 5.7.20)
Det mest frustrerende er hvilkernb fejl jeg får i resins jvmlog:
Could not create connection to database server. Attempted reconnect 3 times. Giving up.
Could not create connection to database server. Attempted reconnect 3 times. Giving up.
null
Selve brugeren jeg har lavet i JSP/mysql er testet flere gange - kan sagtens logge ind og har de rigtige rettigheder. Miot umiddelbare bud er det er JDBC driveren der driller
Heldighvis(troede jeg ) var MySQL udkommet med en JDBC connecter som deb package --> mysql-connector-java_8.0.11-1debian9_all.deb
Denne er installeret - men jeg kan simpelthen ikke få det til at spille - og konstant får jeg samme fejl som vist ovenover.
Jeg har testet og lagt *.jar filen både i Resin lib - men også sitet WEB-INF/lib - Men uanset hvad - så fejler det
Her er min MySQL Driver jeg har lavet i sin tid - denne er tilrettet efter de nye Paths:
package x.web;
import java.sql.*;
public class XMySQL {
private static Statement statement;
private static Connection connection;
private String host = "";
private String database = "";
private String user = "";
private String password = "";
public XMySQL() {
final String MYSQL_DRIVER = "com.mysql.cj.jdbc.Driver";
try {
Class.forName(MYSQL_DRIVER).newInstance();
} catch (Exception e) {
System.err.println(e.getMessage());
}
}
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public String getDatabase() {
return database;
}
public void setDatabase(String database) {
this.database = database;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public void open() {
final String MYSQL_DB = "jdbc:mysql://" + host + "/" + database + "?autoReconnect=true&useSSL=false";
try {
connection = DriverManager.getConnection(
MYSQL_DB, user, password
);
if ( connection != null ) {
connection.setAutoCommit(false);
statement = connection.createStatement();
}
} catch (Exception e) {
System.err.println(e.getMessage());
}
}
public void open(String ho, String db, String user, String pass) {
this.host = ho;
this.database = db;
this.user = user;
this.password = pass;
open();
}
public ResultSet select(String query) {
ResultSet results = null;
try {
results = statement.executeQuery(query);
} catch (Exception e) {
System.err.println(e.getMessage());
}
return results;
}
public void execute(String command) {
try {
statement.executeUpdate(command);
connection.commit();
} catch (Exception e) {
System.err.println(e.getMessage());
try {
connection.rollback();
} catch (Exception x) {
System.err.println(x.getMessage());
}
}
}
public boolean close() { // Lukker forbindelse
boolean result = false;
try {
if ( connection != null ) {
statement.close(); // Luk statement
connection.close(); // Luk forbindelse
result = true; // Lukket
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
}
Er der nogen der kan fortælle mig hvor det går galt her - siden den ikke vil logge ind mere
Kommentarer4
Har du proevet at pinge din
Ja det er localhost! svarer
#2
MySQL gør forskel på
MySQL gør forskel på 127.0.0.1 og localhost hvor sidstnævnte betyder der forsøges at kommunikeres over en Unix socket. Jeg skal ikke kunne sige om det er det der giver dig problemer men har du prøvet at forbinde til 127.0.0.1 frem for localhost?
Jeg tror ikke du har et problem med at indlæse selve driveren da du ikke får en classloader exception.
Og sidst, må jeg lige indskyde at din Java koden er helt horribel skrevet... men det er næppe problemet. :D
#0Kan du bekræfte du ikke
Kan du bekræfte du ikke har problemer med VPN og derfor muligvis også DNS, fx allerede i din router? https://www.linuxin.dk/node/22401
Det ser ud til at et skide javascript, kan injicere kode der kræver reset af routeren.