2014-10-17 12 views
6

Ich muss group_concat_max_len erhöhen. Ich kann es nicht durch Preparestatement tun, und ich kann es auch nicht in mysql my.conf-Datei tun.Wie übergeben Sie Sitzungsvariablen in der JDBC-URL richtig?

Ich fand auf mysql docs, dass es eine Option gibt, Sitzungsvariablen in URL zu übergeben. Aber es gibt kein Beispiel, habe ich versucht, es so zu tun:

jdbc.url=jdbc:mysql://xxxx.xx.xx.xx/dbName?sessionVariables=group_concat_max_len:204800 

und ich habe diese Ausnahme:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':204800' at line 1 

Und ich es auch versucht, wie so:

jdbc.url=jdbc:mysql://xxxx.xx.xx.xx/dbName?sessionVariables=group_concat_max_len,204800 

weil die offizielle Dokumentation sagt:

sessionVariables 

A comma-separated list of name/value pairs to be sent as SET SESSION ... to the server when the driver connects. 

Since version: 3.1.8 

Irgendwelche Ideen ???

Antwort

12

Versuchen Sie folgendes:

jdbc.url=jdbc:mysql://xxxx.xx.xx.xx/dbName?sessionVariables=group_concat_max_len=204800 
0

Wenn Sie mehr als eine Session-Parameter hinzufügen, müssen Sie es wie folgt tun:

jdbc:mysql://localhost/database?sessionVariables=FOREIGN_KEY_CHECKS=0&sessionVariables=SQL_SAFE_UPDATES=0 
+0

Können Sie uns erklären, was in Ihrer URL im Vergleich zu den OPs anders URL und wie hilft es? –

+0

Wenn Sie sich die offizielle Dokumentation von Oracle hier [link] (https://dev.mysql.com/doc/connector-j/5.1/de/connector-j-reference-configuration-properties.html) ansehen wird herausfinden, dass es eine Art von Verwirrung ist. Es wird angegeben, dass die Parameter als kommagetrennte Liste von Werten angegeben werden sollten, was tatsächlich nicht klar ist. Das obige Beispiel verdeutlicht, wie man zwei oder mehr Sitzungsparameter einstellen kann. – Ned

Verwandte Themen