升級mysql數據庫到5.5.3+html
修改database、table和column字符集java
alter database DATABASE_NAME character set = utf8mb4 collate = utf8mb4_unicode_ci; alter table TABLE_NAME convert to character set utf8mb4 collate utf8mb4_unicode_ci; #修改表中類型爲varchar、char等類型的列,長度或字符個數視狀況而定。 alter table TABLE_NAME change OLD_COLUMN_NAME NEW_COLUMN_NAME varchar(字符個數) character set utf8mb4 collate utf8mb4_unicode_ci;
修改mysql的配置文件my.cnfmysql
[client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 [mysqld] character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4'
從新啓動mysql數據庫sql
service mysql restart;
檢查mysql數據庫字符集數據庫
show variables where variable_name like 'character_set_%' or variable_name like 'collation%';
檢查是否有以下輸出:服務器
| Variable_name | Value | |-----------------------------------------|-----------------------------------------| | character_set_client | utf8mb4 | | character_set_connection | utf8mb4 | | character_set_database | utf8mb4 | | character_set_filesystem | binary | | character_set_results | utf8mb4 | | character_set_server | utf8mb4 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | | collation_connection | utf8mb4_unicode_ci | | collation_database | utf8mb4_unicode_ci | | collation_server | utf8mb4_unicode_ci |
確認mysql-connector-java的版本,網上說只要大於5.1.13就能夠,通過測試5.1.26不能夠,可是最新版5.1.35(Mar 17, 2015版本)能夠,其它版本未測試測試
檢查服務器端的mysql數據庫鏈接字符串,必定要包含charactorEncoding=utf八、useUnicode=true、autoReconnect=true等字段rest
注:JDBC Connection String的具體配置可參見:http://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html
導出數據庫時,須要設置字符集爲utf8mb4code
mysqldump --default-character-set=utf8mb4 用戶名 密碼 數據庫名 > 文件名server