Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to pass session variables in JDBC url properly?

Tags:

java

mysql

jdbc

I have to increase group_concat_max_len. I cannot do it by preparestatement, and also I cannot do it in mysql my.conf file.

I found on mysql docs that there is an option to pass session variables in url. But there is no example, I tried to do it like that:

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

and I have this exception:

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

And also I tried it like like this:

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

because the official docs says:

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

Any ideas???

like image 496
m.aibin Avatar asked Oct 17 '14 12:10

m.aibin


2 Answers

Try this:

jdbc.url=jdbc:mysql://xxxx.xx.xx.xx/dbName?sessionVariables=group_concat_max_len=204800
like image 177
Cristian Greco Avatar answered Oct 21 '22 06:10

Cristian Greco


If you need to add more than one session parameter you can do it like this:

jdbc:mysql://localhost/database?sessionVariables=FOREIGN_KEY_CHECKS=0&sessionVariables=SQL_SAFE_UPDATES=0
like image 14
Ned Avatar answered Oct 21 '22 05:10

Ned