【闫云鹏】Flink cdc 连接mysql5.7.25报错

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

【闫云鹏】Flink cdc 连接mysql5.7.25报错

Yan,Yunpeng(DXM,PB)

Hi all:

       使用flink cdc连接mysql 5.7.25  使用默认的8.0.16mysql驱动报错如下信息

       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]

 

度小满金融

精于科技 值得信赖

 

 

 

Reply | Threaded
Open this post in threaded view
|

Re: 【闫云鹏】Flink cdc 连接mysql5.7.25报错

Yan,Yunpeng(DXM,PB)
有大佬帮忙看看?

闫云鹏
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]>

度小满金融

精于科技 值得信赖




Reply | Threaded
Open this post in threaded view
|

Re: 【闫云鹏】Flink cdc 连接mysql5.7.25报错

china_tao
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/
Reply | Threaded
Open this post in threaded view
|

Re: 【闫云鹏】Flink cdc 连接mysql5.7.25报错

Yan,Yunpeng(DXM,PB)
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/

Reply | Threaded
Open this post in threaded view
|

Re: 【闫云鹏】Flink cdc 连接mysql5.7.25报错

Jark
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/
>
>