由 MySQL server 和 mysql-connector 版本的不匹配引发的一场惊魂

时间:2021-11-09 07:38:14

剧情还原

今天原计划给领导演示一个小Demo, 昨天在自己机器上调通OK以后就下班了。。。

今天上午早会后,领导说 “昨天,我让我们IT同事把新的测试环境搭建好了,XXX 你把要演示的Demo部署到上面,弄好了以后安排个会议室,我们看看。。。”。

之后,我就赶紧找IT同事确认新环境的信息,由于他有事情要请假,所以简单给我说了下就闪人了;遂留下我一人开启了爬坑之旅。。。

 

爬坑开始

从自己机器登录到新环境以后,看了下环境,该装的东西貌似一个都不少。。。心中暗自喜(IT同事真给力);于是把demo程序打包部署到Tomcat上面,完美启动!!

打开浏览器,输入URL,一个偌大的404搞得我差点没把含在嘴里的版口水喷射出来。。。纳尼?赶紧打开Tomcat的log看看,

 

 Cause: java.sql.SQLException: Unknown initial character set index '45' received from server...

 

什么东东?赶紧在网上搜搜|压压惊,真庆幸网络真的是好,输入关键字以后出来了各种各样的解决方案。没办法,一个个来尝试吧。这时候领导来了,说XX,我上午有点事情,你的Demo放到下午演示吧。。。我连忙说“没问题,,领导您先忙吧。。呵呵” 真是不幸中的万幸呀,天助我也(心里暗暗庆幸躲过一劫)。

 

接着爬

赶紧回过神来解决问题呀,这东西要是搞不好,不是准备找批么!! 随着时间一点一滴的推移,网上的解决方案试了一个又一个,都没有什么作用。转眼间就到了午饭的时间,可是我还是一筹莫展。。。煎熬呀!!中午午饭的时候也是食之无味,随便巴拉两口就赶紧回来接着解决问题。最奇怪的是在自己的环境部署测试都没有问题,但是放到新环境里面就报错。。。仔细想了想,首先排除程序问题;那么会不会环境的差异呢?

 

结束爬坑

于是打开POM查看了下 mysql-connector 的版本,自己用的是

<dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.38</version>
</dependency>

 

貌似还好呀,没有走非主流路呢,为什么会出错呢。。。 难道是MySQL server 的问题么?打开工具查了下版本,差点没人让我喷饭(貌似中午也没咋吃)。。

 

> SELECT VERSION();

6.0.11-alpha-community

秋都吗得,这是个啥版本? alpha 有没有亮瞎我的眼~~ ITx小帅锅,我俩也没仇呀?! 自己在网上简单搜了下,现在都找不到下载了地址,真的是无语呀。。。

没办法,总不能重新装MySQL server 吧,那就尝试用老一点的 mysql-connector吧, 在Maven仓库里找了个使用率最高的 5.1.6,从新打包部署,问题解决。。

 

---

 

PS. 今天下午由于领导事情没弄完,演示的事情暂时搁浅了,算是虚惊一场吧。 记在这里也算是给平淡的生活添一点乐趣吧 :)