mysql连接失败HikariPool错误

这个异常主要是说这个什么HikariPool鬼东西没能完成初始化,但造成这一结果的原因有很多。 可能是

1.驱动问题,

比如版本问题(例如:mysql的版本高于驱动的版本,统一使用8以上的驱动就能解决,8版驱动向下兼容;或例如缺乏依赖导入,比如本地已有不再扫描等等属于普通依赖配置问题,

<scope>runtime</scope>

自动适配不行的话,就明确指定也可以

<version></version>

不过我还是推荐runtime),比如

com.mysql.jdbc.Driver

已经过时,要改用

com.mysql.cj.jdbc.Driver

等等。。。

2.配置文件问题

也可能是yml或properties里面的设置问题,例如URL的一长串出问题最常见,常用的有,

jdbc:mysql://localhost:3306/library?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai

当然还有ssl等其他的设置(ssl不统一也是常见的错误),不只要看URL,配置里的每一项都需要仔细检查。

java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[mysql-connector-java-8.0.19.jar:8.0.19]
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) ~[mysql-connector-java-8.0.19.jar:8.0.19]
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-java-8.0.19.jar:8.0.19]

3.Mysql配置问题

主要是检查MySQL的配置是否与配置文件中需要的配置统一,具体情况具体分析,就不一一列举了。原则就是你特殊指定了什么就优先去查什么,然后再去排查普通设置。

另外一个主要的设置是连接配置,简单来说可以参考这篇,比如全数字密码远程访问会出问题(这是我写这次博客的原因,呜呜,找了好久),

mysql> update user set password=password('abc') where user='root' and host='localhost';

或者设置访问的主机名等。暂时没时间整理了,把下面看到的不错的博文链接放在下面吧。基本覆盖了我能遇到和想到的大多数MySQL配置连接问题。

4.系统问题

没遇到也没见识过,但是感觉挺偏门的,怕自己之后遇到却想不到,就也放在这里了。
如果当前使用的服务器系统是ubuntu18.4, 则应当查看当前的mysql版本, 因为ubuntu默认安装的mysql版本是5.7, 而mysql5.7只支持到ubuntu17, 也就是说默认的mysql版本是不支持ubuntu18.4的, 应当卸载当前mysql5.7, 安装mysql8. (注意, 安装mysql8时应使用旧版本的密码验证方式, 因为mysql8引入的新的密码验证方式与ubuntu18.4是不兼容的)

据说新的MySQL5.7已经支持ubuntu18.4了, 如果还有人遇到这种问题, 可以先尝试使用 telnet命令测试一下端口是否连通, 如果不通, 请开启ubuntu 网络防火墙 ufw, 并将需要的端口打开。