java.sql.SQLException:从连接器 8.0.11 的服务器接收到未知的初始字符集索引“255”

新手上路,请多包涵

在建立与 MySQL 数据库的连接时,出现以下错误

java.sql.SQLException: Unknown initial character set index '255' received from
server. Initial client character set can be forced via the 'characterEncoding'
property.

谷歌搜索后,我知道我们需要修改 my.ini 或 my.cnf 中的 2 个参数。

我使用的是 MySQL 8.0.11 版,它没有这个文件。

因此,我使用 SQL 命令修改了这些参数:

请注意名称和持续时间是表中的列名。

 ALTER TABLE courses MODIFY name VARCHAR(50) COLLATE utf8_unicode_ci;
ALTER TABLE courses MODIFY duration VARCHAR(50) COLLATE utf8_unicode_ci;

ALTER TABLE courses MODIFY name VARCHAR(50) CHARACTER SET utf8;
ALTER TABLE courses MODIFY duration VARCHAR(50) CHARACTER SET utf8;

因此我的桌子看起来像这样

桌子

之后,我重新启动了 MySQL 服务器,但仍然出现上述错误。

请注意我正在 tomcat 中部署我的应用程序并运行将连接到数据库的 rest API 调用。连接到数据库时,出现上述错误。

原文由 sachin sarangamath 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

使用 MySQLWorkbench 接口:

首先单击您的连接->

在此处输入图像描述

单击选项文件后

在此处输入图像描述

并将 character-set-server 和 collation-server 值更改为以下值:

在此处输入图像描述

确保通过打开服务并重新启动 mysql 服务器来重新启动 mysql 服务器。

原文由 Knautiluz 发布,翻译遵循 CC BY-SA 4.0 许可协议

在版本 8 中,默认字符集发生了变化。当您将字符集添加到连接 URL 时,如 ?characterEncoding=latin1 它可能会起作用。

原文由 Fredy Fischer 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题