canal-adapter出现com.alibaba.druid.pool.DruidDataSource errorCode 0, state 08S01的问题

环境:
系统:Ubuntu 20.04
数据库:MySQL5.7.37
canal-adapter:1.1.15

出现问题 ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/canal_test?useUnicode=true, errorCode 0, state 08S01
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

2022-02-18 05:08:45.307 [Druid-ConnectionPool-Create-2095970915] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/canal_test?useUnicode=true, errorCode 0, state 08S01
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet successfully received from the server was 3 milliseconds ago.  The last packet sent successfully to the server was 3 milliseconds ago.
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_312]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_312]
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_312]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_312]
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:425) ~[mysql-connector-java-5.1.48.jar:5.1.48]
        at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:990) ~[mysql-connector-java-5.1.48.jar:5.1.48]
        at com.mysql.jdbc.ExportControlled.transformSocketToSSLSocket(ExportControlled.java:201) ~[mysql-connector-java-5.1.48.jar:5.1.48]
        at com.mysql.jdbc.MysqlIO.negotiateSSLConnection(MysqlIO.java:4869) ~[mysql-connector-java-5.1.48.jar:5.1.48]
        at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1656) ~[mysql-connector-java-5.1.48.jar:5.1.48]
        at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1217) ~[mysql-connector-java-5.1.48.jar:5.1.48]
        at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2189) ~[mysql-connector-java-5.1.48.jar:5.1.48]
        at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2220) ~[mysql-connector-java-5.1.48.jar:5.1.48]
        at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2015) ~[mysql-connector-java-5.1.48.jar:5.1.48]
        at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:768) ~[mysql-connector-java-5.1.48.jar:5.1.48]
        at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47) ~[mysql-connector-java-5.1.48.jar:5.1.48]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_312]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_312]
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_312]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_312]
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:425) ~[mysql-connector-java-5.1.48.jar:5.1.48]
        at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:385) ~[mysql-connector-java-5.1.48.jar:5.1.48]
        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:323) ~[mysql-connector-java-5.1.48.jar:5.1.48]
        at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1657) ~[druid-1.2.6.jar:1.2.6]
        at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1723) ~[druid-1.2.6.jar:1.2.6]
        at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2801) ~[druid-1.2.6.jar:1.2.6]
Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
        at sun.security.ssl.HandshakeContext.<init>(HandshakeContext.java:171) ~[na:1.8.0_312]
        at sun.security.ssl.ClientHandshakeContext.<init>(ClientHandshakeContext.java:103) ~[na:1.8.0_312]
        at sun.security.ssl.TransportContext.kickstart(TransportContext.java:220) ~[na:1.8.0_312]
        at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:428) ~[na:1.8.0_312]
        at com.mysql.jdbc.ExportControlled.transformSocketToSSLSocket(ExportControlled.java:186) ~[mysql-connector-java-5.1.48.jar:5.1.48]
        ... 18 common frames omitted

检查一下

1、未开启远程操作权限
登录MySQL

CREATE USER canal IDENTIFIED BY 'canal';  
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
-- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;
FLUSH PRIVILEGES;

2、需要在项目的application.yml配置中加上:&useSSL=false&serverTimezone=UTC

  srcDataSources:
    defaultDS:
      url: jdbc:mysql://127.0.0.1:3306/canal_test?useUnicode=true&useSSL=false
      username: canal
      password: canal
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
canal.adapter 运行异常是指在使用 com.alibaba.druid.pool.DruidDataSource 时发生了错误。DruidDataSource 是阿里巴巴开发的一种数据库连接池,用于管理数据库连接的创建和释放,提供了更好的性能和稳定性。 出现 canal.adapter 运行异常可能有多种原因,包括配置错误、数据库连接问题、依赖库缺失等。 首先,我们需要检查配置文件,确保数据库的连接参数正确配置。这包括数据库URL、用户名和密码等。如果任何一个参数错误或者缺失,都会导致 canal.adapter 运行异常。 其次,我们需要确认数据库连接是否可用。可以通过测试连接或者手动连接数据库来检查连接是否成功。如果连接失败,可能是数据库服务器故障或网络问题导致的。 另外,还需要检查相关依赖库是否正确导入。如果缺少了相应的依赖库,也会导致 canal.adapter 运行异常。可以通过查看项目的依赖管理文件,确认是否缺少必要的依赖库。 最后,如果以上步骤都没有发现问题,可以尝试重新部署 canal.adapter,并确保使用的是最新版本。有时候,旧版本的 canal.adapter 可能存在一些已知的问题,更新到最新版本可能会解决运行异常的问题。 总结来说,canal.adapter 运行异常出现时,我们需要检查配置文件、确认数据库连接是否可用、检查依赖库导入是否正确,并尝试重新部署和更新版本,以解决运行异常的问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WMSmile

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值