2024-09-27 11:14:16 [ERROR] 2024-09-27 11:14:16.055 +0800 o.a.d.p.d.a.d.AbstractDataSourceProcessor:[130] - Check datasource connectivity for: MYSQL error
2024-09-27 11:14:16 java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
看下docker-dolphinscheduler-api-1容器的日志中发现以上失败,通过检索发现,可以把驱动包放在lib/plugin/task/sql目录下,但是,这个目录在哪里却是个问题,后来查看源代码(https://github.com/apache/dolphinscheduler/blob/3.1.0/dolphinscheduler-api/src/main/docker/Dockerfile),确定ENV DOLPHINSCHEDULER_HOME /opt/dolphinscheduler,那么进入容器的/opt/dolphinscheduler这个目录确实能看到libs子目录,其中已经有一些连接器了,只不过那些就是官方所说的符合开源协议的已经内置的,像mysql的就不符合apache的开源协议,所以只能自己往里放,可是为什么官方文档里没有提到呢?
我是搜到了https://www.bookstack.cn/read/dolphinscheduler-3.1.0-zh/7667e5f48166e75f.md,这个来自官方的早期镜像版:
查看对应版本的官方文档却找不到对应的章节。
目前,以3.2.2版本来说,需要放连接器的容器包括:
docker-dolphinscheduler-api-1
docker-dolphinscheduler-worker-1
docker-dolphinscheduler-alert-1
以docker desktop操作说明,找到这两个容器,点击容器名进入容器,切换到Files,/opt/dolphinscheduler/libs,右键import,选择mysql-connector-j-8.2.0.jar,然后重启以上三个容器就可以了。