最近在空闲时间学习的时候,往服务器上部署项目遇到无法连接数据库,启动报错的问题,最后排查下来是一个简单的配置造成的,特此记录。
服务器:centos 7
mysql:5.7.23
tomcat:8.5.34
jdk:1.8.0_181
说明:由于是自己练手的项目,mysql也是安装在同一台服务器上的;
问题描述
我的项目就是一个普通的maven javaweb项目,丢到服务器上后,启动tomcat却总是报下图中的错,一直无法连接到数据库,导致项目无法正常启动
解决过程
step1:看到报错第一行是druid报错,并且把url打出来,第一反应是查看数据源的配置时候正确,查看了ip,username,password均正确无误,排除;
step2:猜想有没有可能是版本造成的(因为之前自己练手的时候用的都是比较新版本的spring,mysql,tomcat等等,也碰到过一些问题),于是将同样版本的mysql和tomcat在本地环境安装了一遍,测试,也可以成功启动;
step3:由于在服务器安装mysql时,遇到过需要分配远程连接权限的问题,查看mysql的配置,也ok;
step4:基本上自己的瞎猜都没有解决,到这里就比较焦虑了,只能将错误信息丢到网上百度,发现解决办法都说的不是特别清楚,但是关键是都提到了证书问题,于是回到第一步,再仔细从头梳理一下,发现最后有个useSSL=true,mysql高版本中新加的一个配置项,尝试将此配置去掉,再重启,问题解决!
jdbc:mysql://127.0.0.1:3306/gaspipeline?serverTimezone=Asia/Shanghai&user=root&password=910630&useUnicode=true&characterEncoding=utf-8&useSSL=true
后
这个细微的配置花了大半天的时间去排查,果然越是搞不定的问题,通常产生的点越细小。。。