zendesk / maxwell

Maxwell's daemon, a mysql-to-json kafka producer
https://maxwells-daemon.io/
Other
4.04k stars 1.01k forks source link

Maxwell permission problem #1421

Open zhangxinjian123 opened 4 years ago

zhangxinjian123 commented 4 years ago

Maxwell has read permission on several tables in a database, and no read permission on other tables. Configuration parameters also filter out tables without read permission. But if the table without read permission changes. Maxwell reported an error. java.lang.RuntimeException: Couldn't find table test_tb in database test at com.zendesk.maxwell.replication.TableCache.processEvent(TableCache.java:31) at com.zendesk.maxwell.replication.BinlogConnectorReplicator.getTransactionRows(BinlogConnectorReplicator.java:486) at com.zendesk.maxwell.replication.BinlogConnectorReplicator.getRow(BinlogConnectorReplicator.java:592) at com.zendesk.maxwell.replication.BinlogConnectorReplicator.work(BinlogConnectorReplicator.java:175) at com.zendesk.maxwell.util.RunLoopProcess.runLoop(RunLoopProcess.java:34) at com.zendesk.maxwell.Maxwell.startInner(Maxwell.java:222) at com.zendesk.maxwell.Maxwell.start(Maxwell.java:1

osheroff commented 4 years ago

can you show me more exactly what permissions maxwell has? Also exactly what version of mysql are you using?

hawkingabc commented 4 years ago

you can config filter tables which has read permission in configuration like: --filter = 'exclude: foodb.*, include: foodb.tbl, include: foodb./table_\d+/'

porkling commented 4 years ago

When Maxwell builds the metabase, it does not have enough permissions and does not know the existence of the table. Therefore, the table does not exist in Maxwell metadata. The solution is to add sufficient permissions for Maxwell and rebuild the metadata.