Java 在linux上将MySQL字符集更改为UTF8,以便它可以与JDBC一起工作

Java 在linux上将MySQL字符集更改为UTF8,以便它可以与JDBC一起工作,java,mysql,linux,jdbc,utf8mb4,Java,Mysql,Linux,Jdbc,Utf8mb4,我的应用程序可以部署在Win\Linux上,使用MySQL 5.5,可以用不同的语言存储数据 我将MySQL服务器更改为将以下字符集变量设置为UTF8: 字符集客户端 字符集连接 字符集连接 字符集数据库 字符集结果 字符集服务器 字符集系统 为此,我在my.ini中添加了以下内容: [mysql] default-character-set=utf8 [mysqld] init_connect='SET collation_connection = utf8_unicode_ci'

我的应用程序可以部署在Win\Linux上,使用MySQL 5.5,可以用不同的语言存储数据

我将MySQL服务器更改为将以下字符集变量设置为UTF8:

  • 字符集客户端
  • 字符集连接
  • 字符集连接
  • 字符集数据库
  • 字符集结果
  • 字符集服务器
  • 字符集系统
为此,我在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”

您只需向
连接url添加如下参数:

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


主机名->可以是
localhost
或任何其他主机(您可以使用ip地址
000.000.0.0
指定)

您在Linux上的mysql版本是什么?Linux上的mysql版本:5.5.2 64位尝试将其升级到5.5.3或更高版本。检查您的mysql是否使用了/etc/mysql/my.cnf而不是my.ini。似乎mysql得到了我正在更改的配置,所以我认为使用错误的文件不是问题。