【 使用环境 】测试环境
【 OB or 其他组件 】obdumper
【 使用版本 】Version: 4.3.4-RELEASE
【问题描述】使用obdumper执行导出表结构ddl时出现show grants for test@10.%.%.%报错
【复现路径】执行命令./obdumper -h 192.168.1.10 -P 2883 -u admin -p xxxxxx -c ob01 -t tcmysql -D test --ddl --all -f /home/admin/test/ddl
【附件及日志】报错日志如下
2025-08-18 13:55:52 [INFO] Query 0 dependencies elapsed 15.68 ms
2025-08-18 13:55:52 [ERROR] SQL: show grants for test@10.%.%.%; java.sql.SQLSyntaxErrorException: (conn=815006252) You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near ‘%.%.%;’ at line 1
at com.oceanbase.jdbc.internal.util.exceptions.ExceptionFactory.createException(ExceptionFactory.java:110) ~[oceanbase-client-2.4.14.jar:?]
at com.oceanbase.jdbc.internal.util.exceptions.ExceptionFactory.create(ExceptionFactory.java:202) ~[oceanbase-client-2.4.14.jar:?]
at com.oceanbase.jdbc.JDBC4ServerPreparedStatement.prepare(JDBC4ServerPreparedStatement.java:312) ~[oceanbase-client-2.4.14.jar:?]
at com.oceanbase.jdbc.JDBC4ServerPreparedStatement.(JDBC4ServerPreparedStatement.java:164) ~[oceanbase-client-2.4.14.jar:?]
at com.oceanbase.jdbc.ServerSidePreparedStatement.(ServerSidePreparedStatement.java:78) ~[oceanbase-client-2.4.14.jar:?]
at com.oceanbase.jdbc.OceanBaseConnection.internalPrepareStatement(OceanBaseConnection.java:813) ~[oceanbase-client-2.4.14.jar:?]
at com.oceanbase.jdbc.OceanBaseConnection.prepareStatement(OceanBaseConnection.java:575) ~[oceanbase-client-2.4.14.jar:?]
at com.alibaba.druid.pool.DruidStatementConnection.prepareStatement(DruidStatementConnection.java:171) ~[druid-1.2.22.jar:?]
at com.alibaba.druid.filter.FilterChainImpl.connection_prepareStatement(FilterChainImpl.java:592) ~[druid-1.2.22.jar:?]
at com.alibaba.druid.filter.FilterAdapter.connection_prepareStatement(FilterAdapter.java:921) ~[druid-1.2.22.jar:?]
at com.alibaba.druid.filter.FilterEventAdapter.connection_prepareStatement(FilterEventAdapter.java:137) ~[druid-1.2.22.jar:?]
at com.alibaba.druid.filter.FilterChainImpl.connection_prepareStatement(FilterChainImpl.java:587) ~[druid-1.2.22.jar:?]
at com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl.prepareStatement(ConnectionProxyImpl.java:361) ~[druid-1.2.22.jar:?]
at com.alibaba.druid.pool.DruidPooledConnection.prepareStatement(DruidPooledConnection.java:407) ~[druid-1.2.22.jar:?]
at com.oceanbase.tools.loaddump.jdbc.JdbcExecutor.query(JdbcExecutor.java:47) ~[ob-loader-dumper-4.3.4-RELEASE.jar:?]
at com.oceanbase.tools.loaddump.jdbc.JdbcTemplate.query(JdbcTemplate.java:58) ~[ob-loader-dumper-4.3.4-RELEASE.jar:?]
at com.oceanbase.tools.loaddump.jdbc.JdbcTemplate.query(JdbcTemplate.java:66) ~[ob-loader-dumper-4.3.4-RELEASE.jar:?]
at com.oceanbase.tools.loaddump.schema.accessor.ObMySqlMetadataAccessor.queryObjUserMapping(ObMySqlMetadataAccessor.java:1651) ~[ob-loader-dumper-4.3.4-RELEASE.jar:?]
at com.oceanbase.tools.loaddump.schema.accessor.ObMySqlMetadataAccessor.queryMetadata(ObMySqlMetadataAccessor.java:176) ~[ob-loader-dumper-4.3.4-RELEASE.jar:?]
at com.oceanbase.tools.loaddump.schema.accessor.ObMySqlMetadataAccessor.queryMetadata(ObMySqlMetadataAccessor.java:111) ~[ob-loader-dumper-4.3.4-RELEASE.jar:?]
at com.oceanbase.tools.loaddump.dumper.task.schema.ObMysqlSchemaDumpTask.dumpSchema(ObMysqlSchemaDumpTask.java:45) ~[ob-loader-dumper-4.3.4-RELEASE.jar:?]
at com.oceanbase.tools.loaddump.dumper.task.schema.ObMysqlCompactSchemaDumpTask.dumpSchema(ObMysqlCompactSchemaDumpTask.java:49) ~[ob-loader-dumper-4.3.4-RELEASE.jar:?]
at com.oceanbase.tools.loaddump.dumper.task.schema.AbstractSchemaDumpTask.dumpCreateObjects(AbstractSchemaDumpTask.java:150) ~[ob-loader-dumper-4.3.4-RELEASE.jar:?]
at com.oceanbase.tools.loaddump.dumper.task.schema.AbstractSchemaDumpTask.run(AbstractSchemaDumpTask.java:110) ~[ob-loader-dumper-4.3.4-RELEASE.jar:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_202]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_202]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_202]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_202]
at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_202]
Caused by: java.sql.SQLException: You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near ‘%.%.%;’ at line 1
at com.oceanbase.jdbc.internal.com.send.ComStmtPrepare.buildErrorException(ComStmtPrepare.java:182) ~[oceanbase-client-2.4.14.jar:?]
at com.oceanbase.jdbc.internal.com.send.ComStmtPrepare.read(ComStmtPrepare.java:99) ~[oceanbase-client-2.4.14.jar:?]
at com.oceanbase.jdbc.internal.protocol.AbstractQueryProtocol.prepare(AbstractQueryProtocol.java:281) ~[oceanbase-client-2.4.14.jar:?]
at com.oceanbase.jdbc.JDBC4ServerPreparedStatement.prepare(JDBC4ServerPreparedStatement.java:296) ~[oceanbase-client-2.4.14.jar:?]
… 26 more
2025-08-18 13:55:53 [ERROR] Error: You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near ‘%.%.%;’ at line 1
2025-08-18 13:55:53 [INFO]
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!