【发布时间】:2013-01-18 22:43:23
【问题描述】:
我的应用程序可以部署在 Win\Linux 上,并且使用 MySQL 5.5,它可以存储不同语言的数据。
我更改了我的 MySQL 服务器,将以下字符集变量设置为 UTF8:
- character_set_client
- character_set_connection
- character_set_connection
- character_set_database
- character_set_results
- character_set_server
- character_set_system
为此,我在 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
它在 Windows(MySQL 5.5.21 64 位)上运行良好,但是当我的应用程序在 Linux(MySQL 5.5.2 64 位)上运行时,我收到以下错误:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown character set: 'utf8mb4'
任何人都知道“utf8mb4”是从哪里来的,我该如何克服这个问题?
JDBC 驱动程序:'mysql-connector-java-5.1.18-bin'
【问题讨论】:
-
你在 Linux 上的 mysql 版本是多少?
-
Linux 上的 MySQL 版本:5.5.2 64bit
-
尝试升级到5.5.3或更高版本
-
检查你的 MySQL 是否使用 /etc/mysql/my.cnf 而不是 my.ini。
-
好像 MySQL 正在获取我正在更改的配置,所以我不认为这是使用错误文件的问题。
标签: java mysql linux jdbc utf8mb4