问题
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