Unknown initial character set index 255 received from server.菜鸟详细分析:Java web项目连接MySQL 8.0数据库的一些问题

一、这个bug是什么?

Unknown initial character set index ‘255’ received from server.
顾名思义:驱动与数据库字符集不匹配

二、如何解决?

1. 在项目里查看MySQL-connector-java版本

路径:WebContent —> WEB-INF —> lib
mysql-connector-java

2. 查看所安装MySQL是否对应此版本的mysql-connector-java

链接: MySQL对照表官方链接.
mysql-connector-java对照表
以本人项目为例,经过对照发现,系统所安装MySQL版本为8.0,由此推断项目里的mysql-connector-java已经过时,需要下载对应的mysql-connector-java版本。

附:mysql-connector-java-8.0.13.jar
链接:https://pan.baidu.com/s/17JhIIljveVdjub7YaZSRTw
提取码:jshv

3.删除修改原mysql-connector-java配置

1)复制下载好的mysql-connector-java.jar包

2)删除原有老版本mysql-connector-java.jar包

3)导入新版本mysql-connector-java.jar包

直接右键粘贴进WebContent —> WEB-INF —> lib

在这里插入图片描述

4)修改项目原有配置

如下图所示,为项目原配置
修改前

①修改 第一行 引号 内容
jdbc:mysql://localhost:3306/你需要调用的数据库名?characterEncoding=utf-8&useSSL=true&serverTimezone=GMT

jdbc_url上的时区变为必须配置,否则会启动报错:
Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value ‘�й���׼ʱ��’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

②修改 第四行 引号 内容
com.mysql.cj.jdbc.Driver

由于MySQL 8.0 驱动类的改变,com.mysql.jdbc.Driver 需要改为 com.mysql.cj.jdbc.Driver

不修改会影响性能,启动会有警告:
Loading class com.mysql.jdbc.Driver. This is deprecated. The new driver class is com.mysql.cj.jdbc.Driver. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
修改后的驱动程序通过SPI自动注册,通常不需要手动加载驱动程序类。
修改后

三、测试成功否?

有一定可能还会报一个类似这样的错误:

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.catalina.loader.WebappClassLoaderBase$1 to method java.lang.ClassLoader.registerAsParallelCapable()
WARNING: Please consider reporting this to the maintainers of org.apache.catalina.loader.WebappClassLoaderBase$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

这说明jdk版本出问题了,把你古董项目的jdk换一下吧!
右键项目名 —> 构建路径—> 移除原来的jdk—> 添加你已经安装好的jdk
在这里插入图片描述
以上仅供参考,如有纰漏,望君指出,祝君调试顺利,好运(●’◡’●)!

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值