首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Flink中使用mysql连接器-java:在连接到mysql >= 8.0.16时没有找到合适的驱动程序

问在Flink中使用mysql连接器-java:在连接到mysql >= 8.0.16时没有找到合适的驱动程序
EN

Stack Overflow用户
提问于 2020-07-27 16:52:32
回答 2查看 676关注 0票数 3

我正在编写一个简单的Flink程序来将数据从MySQL转移到Mongo。

我正在使用mysql-连接器-java 8.0.16。

问题所在

当我试图连接到我们的测试env (MySQL 8.0.15)时,程序运行得很好。连接字符串如下所示:

代码语言:javascript
复制
jdbc:mysql://my-test-db-url:3306/my_db_name

但是,一旦我将它连接到生产DB (MySQL 8.0.16),我得到了:

代码语言:javascript
复制
java.sql.SQLException: No suitable driver found for jdbc:mysql://my-prod-db-url:3306/my_db_name

这些DB的唯一区别是次要版本(15比16)。

我试过的

升级测试数据库以匹配prod版本

我将我的测试DB升级到8.0.16,以查看该版本的mysql服务器是否有问题。实际上,现在我也无法连接到测试DB,也无法获得相同的异常。

之后,我继续将mysql-连接器-java和测试DB升级到8.0.17,但问题仍然存在。

在我的其他项目中,我可以很好地连接到那些mysql (使用spring和MySQL连接器-java 8.0.18)。所以db服务器应该没有任何问题。

手动将mysql-连接器-java jar放到flink/lib文件夹中。

这不管用

在主类中手动注册驱动程序和mysql源代码函数的开放方法

在main类中没有引发错误。

代码语言:javascript
复制
// tried both
Class.forName("com.mysql.jdbc.Driver").newInstance();
Class.forName("com.mysql.cj.jdbc.Driver").newInstance();

我还确保在运行maven包之后,我的fat jar确实包含连接器类文件。

现在我几乎毫无头绪。谁来救救我。

EN

回答 2

Stack Overflow用户

发布于 2022-09-29 13:14:54

我遇到了这个问题,并注意到flink:https://issues.apache.org/jira/browse/FLINK-20540上有一个JIRA错误。它给出了一个线索:

实例化baseUrl时,baseUrl必须以/当实例化JdbcCatalog结束。

我试图改变baseUrl,但它对我起了作用。

票数 0
EN

Stack Overflow用户

发布于 2022-02-22 19:26:03

在调用Class.forName("org.sqlite.JDBC")之前,我使用DriverManager.getConnection解决了相同的问题(我使用的是sqlite)。这几乎和您尝试过的一样,但是没有调用newInstance()。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63119874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档