Hi all: 使用flink cdc连接mysql
5.7.25 使用默认的8.0.16的mysql驱动报错如下信息 Caused by: java.sql.SQLNonTransientConnectionException: CLIENT_PLUGIN_AUTH is required at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:79) at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835) at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:455) at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240) at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199) at io.debezium.jdbc.JdbcConnection.lambda$patternBasedFactory$1(JdbcConnection.java:190) at io.debezium.jdbc.JdbcConnection.connection(JdbcConnection.java:788) at io.debezium.jdbc.JdbcConnection.connection(JdbcConnection.java:783) at io.debezium.jdbc.JdbcConnection.connect(JdbcConnection.java:329) at io.debezium.connector.mysql.MySqlJdbcContext.querySystemVariables(MySqlJdbcContext.java:325) ... 11 more 数据库账户已授权,尝试降低驱动版本 使用 <dependency> 报错 Caused by: java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver at java.net.URLClassLoader.findClass(URLClassLoader.java:382) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 8 more 在MySQLSource中手动添加驱动配置 props.setProperty("database.jdbc.driver", "com.mysql.jdbc.Driver"); 不生效,还是使用默认的驱动 尝试修改 <debezium.version>1.2.0.Final</debezium.version> 发现依赖比较多,请求有没有更好的方式来兼容或者传入驱动 闫云鹏 DXM 支付业务部 地址:北京市海淀区西北旺东路度小满金融总部 邮编:100085 手机:13693668213
|
有大佬帮忙看看?
闫云鹏 DXM 支付业务部 地址:北京市海淀区西北旺东路度小满金融总部 邮编:100085 手机:13693668213 邮箱:[hidden email]<mailto:[hidden email]> 度小满金融 精于科技 值得信赖 发件人: "Yan,Yunpeng(DXM,PB)" <[hidden email]> 答复: "[hidden email]" <[hidden email]> 日期: 2020年8月26日 星期三 11:24 收件人: "[hidden email]" <[hidden email]> 抄送: "Li,Qian(DXM,PB)" <[hidden email]> 主题: 【闫云鹏】Flink cdc 连接mysql5.7.25报错 Hi all: 使用flink cdc连接mysql 5.7.25 使用默认的8.0.16的mysql驱动报错如下信息 Caused by: java.sql.SQLNonTransientConnectionException: CLIENT_PLUGIN_AUTH is required at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:79) at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835) at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:455) at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240) at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199) at io.debezium.jdbc.JdbcConnection.lambda$patternBasedFactory$1(JdbcConnection.java:190) at io.debezium.jdbc.JdbcConnection.connection(JdbcConnection.java:788) at io.debezium.jdbc.JdbcConnection.connection(JdbcConnection.java:783) at io.debezium.jdbc.JdbcConnection.connect(JdbcConnection.java:329) at io.debezium.connector.mysql.MySqlJdbcContext.querySystemVariables(MySqlJdbcContext.java:325) ... 11 more 数据库账户已授权,尝试降低驱动版本 使用 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency> 报错 Caused by: java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver at java.net.URLClassLoader.findClass(URLClassLoader.java:382) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 8 more 在MySQLSource中手动添加驱动配置 props.setProperty("database.jdbc.driver", "com.mysql.jdbc.Driver"); 不生效,还是使用默认的驱动 尝试修改 <debezium.version>1.2.0.Final</debezium.version> 发现依赖比较多,请求有没有更好的方式来兼容或者传入驱动 闫云鹏 DXM 支付业务部 地址:北京市海淀区西北旺东路度小满金融总部 邮编:100085 手机:13693668213 邮箱:[hidden email]<mailto:[hidden email]> 度小满金融 精于科技 值得信赖 |
In reply to this post by Yan,Yunpeng(DXM,PB)
flink什么版本?用什么方式连接的?如果是flinksql的话,使用https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/connectors/jdbc.html,设置driver。
如果你mysql账号密码确定没有问题的话,可以在pom中把mysql的依赖去掉,把mysql连接的jar包房到flin的lib中,再提交一次试试。 -- Sent from: http://apache-flink.147419.n8.nabble.com/ |
Hi
Flink 版本 1.11.1 直接使用的cdc的包订阅bin-log public static void main(String[] args) throws Exception { SourceFunction<String> sourceFunction = MySQLSource.<String>builder() .hostname("****") .port(***) .databaseList("**** ") // monitor all tables under inventory database .tableList("** ") .username("**") .password("***") .deserializer(new StringDebeziumDeserializationSchema()) // converts SourceRecord to String .build(); StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); env.addSource(sourceFunction) .print().setParallelism(1); // use parallelism 1 for sink to keep message ordering env.execute(); } 使用代码和flink-sql一样的效果 在 2020/8/26 16:25,“china_tao”<[hidden email]> 写入: flink什么版本?用什么方式连接的?如果是flinksql的话,使用https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/connectors/jdbc.html,设置driver。 如果你mysql账号密码确定没有问题的话,可以在pom中把mysql的依赖去掉,把mysql连接的jar包房到flin的lib中,再提交一次试试。 -- Sent from: http://apache-flink.147419.n8.nabble.com/ |
Administrator
|
Hi,
首先 debezium 写死了去找 "com.mysql.cj.jdbc.Driver" 这个 Driver,所以依赖强制换成 5.x 的 driver 是行不通的。 其次,debezium 使用的是 8.0 的 driver,是能兼容去连 5.7.25 的 mysql 的。 我看你报是的 CLIENT_PLUGIN_AUTH 的错误,可以查一下你的 mysql 之上是不是有一层 proxy,可能是这个 proxy 导致的。 Best, Jark On Wed, 26 Aug 2020 at 16:53, Yan,Yunpeng(DXM,PB) <[hidden email]> wrote: > Hi > Flink 版本 1.11.1 直接使用的cdc的包订阅bin-log > > public static void main(String[] args) throws Exception { > SourceFunction<String> sourceFunction = > MySQLSource.<String>builder() > .hostname("****") > .port(***) > .databaseList("**** ") // monitor all tables under > inventory database > .tableList("** ") > .username("**") > .password("***") > .deserializer(new StringDebeziumDeserializationSchema()) > // converts SourceRecord to String > .build(); > > StreamExecutionEnvironment env = > StreamExecutionEnvironment.getExecutionEnvironment(); > > env.addSource(sourceFunction) > .print().setParallelism(1); // use parallelism 1 for sink > to keep message ordering > env.execute(); > } > > 使用代码和flink-sql一样的效果 > > 在 2020/8/26 16:25,“china_tao”<[hidden email]> 写入: > > flink什么版本?用什么方式连接的?如果是flinksql的话,使用 > https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/connectors/jdbc.html > ,设置driver。 > > 如果你mysql账号密码确定没有问题的话,可以在pom中把mysql的依赖去掉,把mysql连接的jar包房到flin的lib中,再提交一次试试。 > > > > > > > -- > Sent from: http://apache-flink.147419.n8.nabble.com/ > > |
Free forum by Nabble | Edit this page |