啟動Canal-adapter 1.1.5 日志報錯,Mysql 數據庫連接 Communications link failure,問題處理


今天安裝canal-adapter報錯,Communications link failure

附 application.yml 配置信息

  srcDataSources:
    defaultDS:
      url: jdbc:mysql://127.0.0.1:3306/canal_manager?useUnicode=true&useSSL=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai
      username: canal
      password: canal
  canalAdapters:
  - instance: kafka # canal instance Name or mq topic name
    groups:
    - groupId: g1
      outerAdapters:
      - name: logger
      - name: rdb
        key: mysql1
        properties:
#          jdbc.driverClassName: com.mysql.jdbc.Driver
           jdbc.driverClassName: ru.yandex.clickhouse.ClickHouseDriver
#          jdbc.url: jdbc:mysql://127.0.0.1:3306/mytest2?useUnicode=true
           jdbc.url: jdbc:clickhouse://192.168.160.133:8123/canal_manager
           jdbc.username: default
           jdbc.password:

問題分析

經過幾個小時查看並嘗試了網上的解決方案,都沒有解決我的問題。
總結了一下,應該從以下幾個方面思考。

  1. Mysql 服務是否啟動
  2. mysql-connector-java的版本
  3. Mysql 參數 wait_timeout、interactive_timeout
  4. application 數據庫連接配置問題
  5. JDK版本

解決的過程就不多說了,請看總結內容。

總結

  1. 確保Mysql服務正常啟動。

  2. mysql-connector-java-8.0.16.jar版本與Mysql 5.7.28兼容。如果無法確認是該問題導致,可以換幾個版本切換試試,下載地址
    下載mysql-conncetor-java

    注意,下載后,上傳到Canal-adapter lib 文件下,需要授權 chmod 7777 mysql-connector-java-8.0.16.jar

  3. Mysql的這兩個參數詳情內容請參考其他資料,本次只給出設置語句(Linux)

   set global wait_timeout=604800;
   set global interactive_timeout=604800;

注意:設置完后,重開一個會話后該設置生效。如果通過以上語句設置,Mysql服務重啟后會失效。可以在/etc/my.cnf中添加參數,永久生效。

  1. 注意參考URL的配置方式:(serverTimezone可以根據實際使用時區調整,比如UTC等)
   url: jdbc:mysql://127.0.0.1:3306/canal_manager?useUnicode=true&useSSL=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai
  1. 確認JDK的版本,經過測試,我的JDK一開始是,openJDK 1.8.*。經過對比嘗試,重裝了Java(TM) SE Runtime Environment (build 1.8.0_181-b13)。最終解決了該問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM