笔者能力有限,小白一枚,在遇到问题之后记录问题的解决方式为主要目的,欢迎各位探讨交流。
问题出现:
-
拉取代码:
docker pull xuxueli/xxl-job-admin:2.3.0
-
docker部署mysql
-
部署代码:
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
-
问题出现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,为什么还会报数据库连接异常。但可以确信是数据库连接出了问题
-
问题的解决思路:
-
查看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
-
-
总结:解决很简单,但曾无数遍怀疑是mysql权限的问题,网络连接时长等问题,许多bolg解决方式繁而杂,静下心才是正确的思维。
-
转载请附带链接,谢谢!