2

My application can be deployed on Win\Linux, and uses MySQL 5.5, and it may store data in different languages.

I changed my MySQL server to have the following charset variables set to UTF8:

  • character_set_client
  • character_set_connection
  • character_set_connection
  • character_set_database
  • character_set_results
  • character_set_server
  • character_set_system

To do so, I added the following to my.ini:

[mysql] 
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'  
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake

It worked well on Windows (MySQL 5.5.21 64 bit), but when my application run on Linux (MySQL 5.5.2 64 bit) I'm getting the following error:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown character set: 'utf8mb4'

Anyone knows where does 'utf8mb4' came from and how can I overcome this?

JDBC driver: 'mysql-connector-java-5.1.18-bin'

danieln
  • 4,795
  • 10
  • 42
  • 64

1 Answers1

3

You can just to add to your connection-url params like:

jdbc:mysql://hostname:3306/dbname?useUnicode=true&characterEncoding=utf8&characterResultSets=utf8

hostname -> may be localhost or any other host(you can specify with ip address 000.000.0.0)

dds
  • 2,335
  • 1
  • 31
  • 45