2014-10-17 11 views
6

Muszę zwiększyć group_concat_max_len. Nie mogę tego zrobić przez przygotowanie, a także nie mogę tego zrobić w pliku mysql my.conf.Jak poprawnie przekazać zmienne sesji w adresie URL JDBC?

Znalazłem na dokumentach mysql, że istnieje opcja przekazywania zmiennych sesji w url. Ale nie ma przykładów, starałem się zrobić to tak:

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

i mam ten wyjątek:

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 

A także próbowałem go jak tak:

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

, ponieważ oficjalny dokument mówi:

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 

Jakieś pomysły ???

Odpowiedz

12

Spróbuj tego:

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

Jeśli chcesz dodać więcej niż jednego parametru sesji można zrobić to tak:

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

mógłby pan wyjaśnić, co różni się w adresie URL w porównaniu do OP URL i jak to pomaga? –

+0

Jeśli przejrzysz oficjalną dokumentację Oracle tutaj [link] (https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-configuration-properties.html), możesz przekona się, że jest to trochę zagmatwane. Stwierdzono, że parametry należy podawać jako listę wartości rozdzielonych przecinkami, która w rzeczywistości nie jest jasna. Powyższy przykład wyjaśnia, w jaki sposób można ustawić dwa lub więcej parametrów sesji. – Ned