笔者能力有限,小白一枚,在遇到问题之后记录问题的解决方式为主要目的,欢迎各位探讨交流。

问题出现:

  1. 拉取代码:

    docker pull xuxueli/xxl-job-admin:2.3.0
    
  2. docker部署mysql

  3. 部署代码:

    docker run -d --link mysql:tolinkmysql -e PARAMS="--spring.datasource.url=jdbc:mysql://tolinkmysql:33061/xxl_job?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai --spring.datasource.username=root --spring.datasource.password=root --spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver" -p 8180:8080 -v /tmp:/data/applogs --name xxl-job-admin xuxueli/xxl-job-admin:2.3.0
    
  4. 问题出现logs(摘取部分错误):

    // com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
    // Caused by: java.net.ConnectException: Connection refused (Connection refused)
    // The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
    

百思不得其解的是明明已经用link链接了mysql,为什么还会报数据库连接异常。但可以确信是数据库连接出了问题

  1. 问题的解决思路:

    • 查看mysql容器的内部ip替换即可正常启动

      docker inspect 容器名 # 查看容器IP
      
    • docker run -d -e PARAMS="--spring.datasource.url=jdbc:mysql://172.17.0.1:33061/xxl_job?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai --spring.datasource.username=root --spring.datasource.password=root --spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver" -p 8180:8080 -v /tmp:/data/applogs --name xxl-job-admin xuxueli/xxl-job-admin:2.3.0
      
  2. 总结:解决很简单,但曾无数遍怀疑是mysql权限的问题,网络连接时长等问题,许多bolg解决方式繁而杂,静下心才是正确的思维。

  3. 转载请附带链接,谢谢!