发表于: 2018-10-14 22:07:53

2 934


一、今天完成的任务

 

我复现了20181011那天的错误,之前有个问题:

如上使用本地MySQL没有问题。

 

 

localhost改成云服务器公网IP,就可以使用云服务器上的MySQL了。但是我试了不行,出现了以下问题:


Exception in thread "main" org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:81)

at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:600)

at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:657)

at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:688)

at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:700)

at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:751)

at org.springframework.jdbc.core.JdbcTemplate.queryForList(JdbcTemplate.java:832)

at com.jdbctemplate.DaoImpl.PeopleJdbcTemplate.findById(PeopleJdbcTemplate.java:317)

at com.jdbctemplate.PeopleTest.main(PeopleTest.java:32)

Caused by: com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

 

不解的地方来了,此时,我使用的mysql-connector-java的版本如下所示:


Url为:

jdbc:mysql://39.106.157.24:3306/task1?serverTimezone=UTC&useSSL=true&useUnicode=true&characterEncoding=UTF8

此时依然报错。

 

Exception in thread "main" org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

 

Last packet sent to the server was 0 ms ago.

at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:81)

at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:600)

at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:657)

at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:688)

at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:700)

at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:751)

at org.springframework.jdbc.core.JdbcTemplate.queryForList(JdbcTemplate.java:832)

at com.jdbctemplate.DaoImpl.PeopleJdbcTemplate.findById(PeopleJdbcTemplate.java:317)

at com.jdbctemplate.PeopleTest.main(PeopleTest.java:32)

Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

 

和上面的报错一致。

<!--value="jdbc:mysql://localhost:3306/task1?serverTimezone=UTC&useSSL=true&useUnicode=true&characterEncoding=UTF8"/>-->

最关键的地方来了!!!!!

URL后面的useSSL=true去掉,运行成功!!更改成useSSL=false,同样运行成功!

 

mysql-connector-java的版本换成8.0.11之后,一样成功运行 !!!

 

问题的症结在于useSSL=true!!!!

 

用之前失败的打包方式跑出来了!!!原来不是打包方式有问题,是以上的问题!!!!


二、明天计划的事情

整理代码以及写任务小结。

三、遇到的问题

遇到的问题上面都已提及并解决。

四、收获

遇到问题先放一放,之后在回过头解决。









返回列表 返回列表
评论

    分享到