Changing MySQL charset to UTF8 on linux so it will work with JDBC

走远了吗. 提交于 2019-12-11 03:52:30

问题


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'


回答1:


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)



来源:https://stackoverflow.com/questions/14683254/changing-mysql-charset-to-utf8-on-linux-so-it-will-work-with-jdbc

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!