Unknown initial character set index . received from server

Status
Nicht offen für weitere Antworten.

RipdEaTh

Mitglied
Hi Leute!

Ich bin gerade dabei für ein PHP-Projekt ein Tool zu entwerfen.
Das PHP - Projekt benutzt eine MySQL Datenbank und das Tool soll auf diese Datenbank zugreifen können. Es soll dort nachher Daten manipulieren.

Soweit so gut, dass Tool funktioniert... Fast!
Wenn ich die Datenbank mithilfe des Tools winmysqlAdmin.exe starte, dann läuft alles wunderbar. Das Tool connected gegen die Datenbank und führt auch alle Anweisungen durch..

Sobald ich aber die Datenbank mit dem gesamten Projekt starte, läuft das Tool nicht mehr.
Problem dabei wird sicherlich sein, dass das PHP-Projekt mithilfe von Xampp über Eclipse gestartet wird.

Wenn ich dann versuche mit dem Tool dagegen zu verbinden, bekomme ich folgende Fehlermeldung und Exceptions:

Error beim Verbinden zur Datenbank: Unknown initial character set index '48' received from server. Initial client character set can be forced via the 'characterEncoding' property.
java.sql.SQLException: Unknown initial character set index '48' received from server. Initial client character set can be forced via the 'characterEncoding' property.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
at com.mysql.jdbc.Connection.configureClientCharacterSet(Connection.java:2345)
at com.mysql.jdbc.Connection.initializePropsFromServer(Connection.java:3913)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2683)
at com.mysql.jdbc.Connection.<init>(Connection.java:1531)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at de.bmiag.OPTerminTool.DBConnection.setConnection(DBConnection.java:29)
at de.bmiag.OPTerminTool.OPTerminTool.main(OPTerminTool.java:11)


Die Methode zum Verbinden sieht wie folgt aus:

Code:
	public boolean setConnection() {
		try {
			Class.forName("com.mysql.jdbc.Driver").newInstance();
			
			//ivConn = DriverManager.getConnection("jdbc:mysql://" + ivHost + ":" + ivPort + "/" + ivDB + "?user=" + ivUser + "&password=" + ivPass);
			ivConn = DriverManager.getConnection("jdbc:mysql://" + ivHost + ":" + ivPort + "/" + ivDB, ivUser, ivPass);
			
			return true;
		} catch (Exception e) {
			reset();
			
			System.out.println("Error beim Verbinden zur Datenbank: " + e.getMessage().toString());
			e.printStackTrace();
			
			return false;
		}
	}

Ich hab schon ein wenig dazu gegoogelt und bin darauf gestoßen, dass dies wohl ein Bug sein soll und wohl etwas mit dem Zeichensatz zu tun hat. Es wird wohl also so sein, dass Xampp die Datenbank mit einem anderen Zeichensatz startet.

Habt ihr damit schon Erfahrungen gemacht und vll sogar dieses Problem schon behoben?
Würde mich freuen, wenn mir jemand versucht zu helfen :)


Liebe Grüße!




/E: Ich habs Problem gefunden. Der neuste Treiber hat einen Bug, der zwar inzwischen behoben, aber noch nicht im aktuellen Download gefixt ist. Habe jetzt erstmal einen älteren JDBC Treiber genommen.
 
G

Gast

Gast
Der Fehler liegt darin dass in der my.cnf von xampp latin1_swedish_ci angegeben ist.
Ein ersetzen durch z.B. utf8 und utf8_bin behebt das Problem ohne einen alten Driver zu nehmen.

Regards,
dj+ji
 
G

Gast_apo

Gast
also einfach die my.cnf im ordner \xampp\mysql\bin mit nem texteditor öffnen, und :

character-set-server = latin1
collation-server = latin1_general_ci

auf

character-set-server = uft8
collation-server = utf8_bin

umändern?
scheint das dieses problem auftritt bei XAMPP 1.5.4a mit MySQL Server 5.0.24a...
habs grad umgeändert, die datenbank neu gestartet und es hilft net :-/ hab auch die ganze databse mal gedropt und neu erstellt -_-
 
G

Gast_apo

Gast
nach nochmaligem starten läufts jetzt doch, dank der umänderung in der my.cnf

danke!
 
G

Guest

Gast
RipdEaTh hat gesagt.:
Hi Leute!

Ich bin gerade dabei für ein PHP-Projekt ein Tool zu entwerfen.
Das PHP - Projekt benutzt eine MySQL Datenbank und das Tool soll auf diese Datenbank zugreifen können. Es soll dort nachher Daten manipulieren.

Soweit so gut, dass Tool funktioniert... Fast!
Wenn ich die Datenbank mithilfe des Tools winmysqlAdmin.exe starte, dann läuft alles wunderbar. Das Tool connected gegen die Datenbank und führt auch alle Anweisungen durch..

Sobald ich aber die Datenbank mit dem gesamten Projekt starte, läuft das Tool nicht mehr.
Problem dabei wird sicherlich sein, dass das PHP-Projekt mithilfe von Xampp über Eclipse gestartet wird.

Wenn ich dann versuche mit dem Tool dagegen zu verbinden, bekomme ich folgende Fehlermeldung und Exceptions:

Error beim Verbinden zur Datenbank: Unknown initial character set index '48' received from server. Initial client character set can be forced via the 'characterEncoding' property.
java.sql.SQLException: Unknown initial character set index '48' received from server. Initial client character set can be forced via the 'characterEncoding' property.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
at com.mysql.jdbc.Connection.configureClientCharacterSet(Connection.java:2345)
at com.mysql.jdbc.Connection.initializePropsFromServer(Connection.java:3913)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2683)
at com.mysql.jdbc.Connection.<init>(Connection.java:1531)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at de.bmiag.OPTerminTool.DBConnection.setConnection(DBConnection.java:29)
at de.bmiag.OPTerminTool.OPTerminTool.main(OPTerminTool.java:11)


Die Methode zum Verbinden sieht wie folgt aus:

Code:
	public boolean setConnection() {
		try {
			Class.forName("com.mysql.jdbc.Driver").newInstance();
			
			//ivConn = DriverManager.getConnection("jdbc:mysql://" + ivHost + ":" + ivPort + "/" + ivDB + "?user=" + ivUser + "&password=" + ivPass);
			ivConn = DriverManager.getConnection("jdbc:mysql://" + ivHost + ":" + ivPort + "/" + ivDB, ivUser, ivPass);
			
			return true;
		} catch (Exception e) {
			reset();
			
			System.out.println("Error beim Verbinden zur Datenbank: " + e.getMessage().toString());
			e.printStackTrace();
			
			return false;
		}
	}

Ich hab schon ein wenig dazu gegoogelt und bin darauf gestoßen, dass dies wohl ein Bug sein soll und wohl etwas mit dem Zeichensatz zu tun hat. Es wird wohl also so sein, dass Xampp die Datenbank mit einem anderen Zeichensatz startet.

Habt ihr damit schon Erfahrungen gemacht und vll sogar dieses Problem schon behoben?
Würde mich freuen, wenn mir jemand versucht zu helfen :)


Liebe Grüße!




/E: Ich habs Problem gefunden. Der neuste Treiber hat einen Bug, der zwar inzwischen behoben, aber noch nicht im aktuellen Download gefixt ist. Habe jetzt erstmal einen älteren JDBC Treiber genommen.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben