【问题标题】:Changing MySQL charset to UTF8 on linux so it will work with JDBC在 Linux 上将 MySQL 字符集更改为 UTF8,以便它可以与 JDBC 一起使用
【发布时间】: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


【解决方案1】:

您可以添加到您的 connection-url 参数中,例如:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-12
    • 2015-09-29
    • 2016-11-21
    • 1970-01-01
    • 2014-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多