ruby-binlog
Description
ruby-binlog is Ruby binding for MySQL Binary log API.
see www.oscon.com/oscon2011/public/schedule/detail/18785
Install
gem install ruby-binlog
Example
require "binlog"
master_log_file = "mysql-bin.000001"
master_log_pos = 4
begin
client = Binlog::Client.new("mysql://repl:[email protected]")
sleep 0.3 until client.connect
client.set_position(master_log_file, master_log_pos)
while event = client.wait_for_next_event
master_log_pos = event.next_position
case event
when Binlog::QueryEvent
puts event.query
when Binlog::RowEvent
puts event.event_type
p event.columns
p event.rows
when Binlog::RotateEvent
master_log_file = event.binlog_file
else
puts "(#{event.event_type})"
end
end
rescue Binlog::Error => e
puts e
retry if client.closed?
raise e
end