Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. @Grab('com.github.shyiko:mysql-binlog-connector-java:0.8.1')
  2. import com.github.shyiko.mysql.binlog.event.*
  3. import com.github.shyiko.mysql.binlog.*
  4.  
  5. if(!args || args.length < 4) {
  6. println 'Usage: groovy binlog_connector.groovy <host> <port> <username> <password>'
  7. return 1
  8. }
  9. def client = new BinaryLogClient(args[0], Integer.parseInt(args[1]), args[2], args[3])
  10. def recordCount = 0
  11.  
  12. client.registerEventListener({ event ->
  13. def type = event.header.eventType
  14. println ("$type @ ${client.binlogFilename}:${event.header.position}")
  15. switch (type) {
  16. case EventType.QUERY:
  17. println "\t${event.data.sql}"
  18. recordCount++
  19. break
  20. case EventType.TABLE_MAP:
  21. println "\t${event.data.database}.${event.data.table} ${event.data.columnTypes}"
  22. break
  23. case EventType.EXT_WRITE_ROWS:
  24. case EventType.WRITE_ROWS:
  25. case EventType.EXT_DELETE_ROWS:
  26. case EventType.DELETE_ROWS:
  27. event.data.includedColumns.each {println "\tColumns modified: $it"}
  28. event.data.rows.each {println "\t$it"}
  29. recordCount++
  30. break
  31. case EventType.EXT_UPDATE_ROWS:
  32. case EventType.UPDATE_ROWS:
  33. println "\tColumns updated: ${event.data.includedColumnsBeforeUpdate} => ${event.data.includedColumns}"
  34. event.data.rows.each {entry -> println "\t${entry.key} now ${entry.value}"}
  35. recordCount++
  36. break
  37. case EventType.XID:
  38. recordCount++
  39. break
  40. }
  41.  
  42. } as BinaryLogClient.EventListener)
  43. client.setBinlogFilename('')
  44. client.setBinlogPosition(-1)
  45. client.connect(5000)
  46.  
  47. Thread.sleep(1000)
  48. client.disconnect()
  49. println recordCount
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement