Skip to content

当库名或表名包含关键字或 - 时抛异常 #3019

@XuDaojie

Description

@XuDaojie
  • I have searched the issues of this repository and believe that this is not a duplicate.
  • I have checked the FAQ of this repository and believe that this is not a duplicate.

environment

  • canal 1.1.5-snapshot
  • mysql 5.7

Issue Description

当库名或表名包含关键字或 - 时抛异常

Steps to reproduce

库名: canal-client-adapter
表名: xdual
rdb yml

dataSourceKey: defaultDS
destination: example
groupId: g1
outerAdapterKey: mysql1
concurrent: true
dbMapping:
  database: retl
  table: xdual
  targetDb: canal-client-adapter
  targetTable: xdual
  targetPk:
    id: id
  mapAll: true
  #  targetColumns:
  #    id:
  #    x:
  #  etlCondition: "where c_time>={}"
  commitBatch: 3000 # 批量提交的大小

Expected behaviour

Actual behaviour

If there is an exception, please attach the exception trace:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-client-adapter.xdual WHERE 1=2' at line 1
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_202]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_202]
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_202]
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_202]
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:425) ~[mysql-connector-java-5.1.48.jar:5.1.48]
    at com.mysql.jdbc.Util.getInstance(Util.java:408) ~[mysql-connector-java-5.1.48.jar:5.1.48]
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:944) ~[mysql-connector-java-5.1.48.jar:5.1.48]
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3933) ~[mysql-connector-java-5.1.48.jar:5.1.48]
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3869) ~[mysql-connector-java-5.1.48.jar:5.1.48]
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2524) ~[mysql-connector-java-5.1.48.jar:5.1.48]
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2675) ~[mysql-connector-java-5.1.48.jar:5.1.48]
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2465) ~[mysql-connector-java-5.1.48.jar:5.1.48]
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2439) ~[mysql-connector-java-5.1.48.jar:5.1.48]
    at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1365) ~[mysql-connector-java-5.1.48.jar:5.1.48]
    at com.alibaba.druid.pool.DruidPooledStatement.executeQuery(DruidPooledStatement.java:230) ~[druid-1.1.9.jar:1.1.9]
    at com.alibaba.otter.canal.client.adapter.support.Util.sqlRS(Util.java:77) ~[classes/:na]
    at com.alibaba.otter.canal.client.adapter.rdb.service.RdbSyncService.getTargetColumnType(RdbSyncService.java:420) [client-adapter.rdb-1.1.5-SNAPSHOT-jar-with-dependencies.jar:na]
    at com.alibaba.otter.canal.client.adapter.rdb.service.RdbSyncService.update(RdbSyncService.java:319) [client-adapter.rdb-1.1.5-SNAPSHOT-jar-with-dependencies.jar:na]
    at com.alibaba.otter.canal.client.adapter.rdb.service.RdbSyncService.sync(RdbSyncService.java:216) [client-adapter.rdb-1.1.5-SNAPSHOT-jar-with-dependencies.jar:na]
    at com.alibaba.otter.canal.client.adapter.rdb.service.RdbSyncService.lambda$null$0(RdbSyncService.java:115) [client-adapter.rdb-1.1.5-SNAPSHOT-jar-with-dependencies.jar:na]
    at java.util.ArrayList.forEach(ArrayList.java:1257) ~[na:1.8.0_202]
    at com.alibaba.otter.canal.client.adapter.rdb.service.RdbSyncService.lambda$sync$1(RdbSyncService.java:115) [client-adapter.rdb-1.1.5-SNAPSHOT-jar-with-dependencies.jar:na]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_202]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_202]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_202]
    at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_202]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions