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, 并将需要的端口打开。