在项目部署到Linux上的时候,程序出现下面的错误
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:836)
at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:456)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1644)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1710)
at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2753)
Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure
最终出现
java.sql.SQLException: null, message from server: "Host '*****’ is blocked because of many connection errors; unblock with ‘mysqladmin flush-hosts’"
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
1、首先在数据库上使用mysqladmin -u root -p flush-hosts命令,解除锁定
2、目前我出现该问题的原因是mysql-connector的驱动版本与数据库版本不匹配导致重复连接而连接不上造成;我使用的连接驱动是8.0.18,而数据库是5.6,更换驱动版本之后就可以正常使用了
奇怪的是项目在我windows下打包跑是正常的,但是放到Linux就出现这个问题,不明白。