前言
在部署Nacos注册中心的时候,连接的MySQL是版本是8,配置了DB相关的信息以及执行了数据库脚本并且在服务器上启动服务,当一切都很顺利的时候,意外从此发生了。哈哈哈哈,本来想修改默认的密码,结果提交的时候并没什么反应,重试了好几次也没啥效果,凭着感觉按下F12,再提交一次,这时发现接口报500。


解决
我的解决方法是,download源码,修改驱动版本,然后用maven重新编译这个过程去获得一个新的而且支持MySQL8的Nacos-server-1.1.4.jar。
1.下载源码
通过全球最大的交友网站Github去拉去代码到本地。然后导入到IDEA,这时,你需要经历一漫长的maven导包过程。
2000 years later
2.修改驱动版本
将pom.xml文件的mysql驱动包作如下修改
<!-- 原有的版本 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.34</version>
</dependency>
<!-- 修改后的版本 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.17</version>
</dependency>
修改完pom.xml文件,还重新导入naming模块下的com.alibaba.nacos.naming.healthcheck.MysqlHealthCheckProcessor的MysqlDataSource
// 原来的
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
// 改成
import com.mysql.cj.jdbc.MysqlDataSource;
3.重新编译
此时,只需要重新编译一下nacos的源码即可
mvn -Prelease-nacos -DskipTests clean install -U
2000 years later
编译完成后,在distribution模块中的target目录下即可找到nacos-server.jar。
4.重新部署
部署的方法很简单,在服务器原来解压后的目录下并且进入target子目录,重新上传并替换掉nacos-server.jar。此时离成功就只差一步了,那就是修改配置文件
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://ip:port/nacos_qa?characterEncoding=utf8&connectTimeout=1000&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai
db.user=
db.password=
最后进入bin目录,执行命令启动就可以了
sh startup.sh -m standalone