【发布时间】:2018-11-01 14:30:03
【问题描述】:
在建立与 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 调用。连接数据库时,出现上述错误。
【问题讨论】:
-
您确定您使用的是Connector/J 8.0.11。
connection.getMetaData().getDriverVersion()返回什么? -
请注意,更改特定列的字符集不会更改连接字符集的内容。您发现您需要在 MySQL 配置中更改哪两个参数?您是否尝试过按照错误消息中的建议指定
characterEncoding连接属性?