java - 在 Linux 上将 MySQL 字符集更改为 UTF8,以便它可以与 JDBC 一起使用

标签 java mysql linux jdbc utf8mb4

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

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

  • 字符集客户端
  • character_set_connection
  • character_set_connection
  • 字符集数据库
  • 字符集结果
  • 字符集服务器
  • 字符集系统

为此,我将以下内容添加到 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'

最佳答案

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

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

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

关于java - 在 Linux 上将 MySQL 字符集更改为 UTF8,以便它可以与 JDBC 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14683254/

相关文章:

javascript - Node 的 spawn() 在从启动时计划的永久脚本中调用时静默失败

android 获取 usb_interface_descriptor, usb_endpoint_descriptor

java - 对 Java 中的泛型感到困惑

java - 如何按升序对文件名进行排序?

php - 优化在 codeigniter 中进行查询的方式

mysql - shell脚本mysql输出转换

linux - 使用 vala 的示例 waf 项目

java - 并发处理严格顺序的消息

java - Slick2D 和 JBox2D。如何绘制

PHP mysqli 查询不返回任何结果