Socket
Book a DemoInstallSign in
Socket

ruby-binlog

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ruby-binlog

0.1.9
bundlerRubygems
Version published
Maintainers
1
Created
Source

= ruby-binlog

== Description

ruby-binlog is Ruby binding for MySQL Binary log API.

  • http://www.oscon.com/oscon2011/public/schedule/detail/18785
  • https://launchpad.net/mysql-replication-listener

== Install

gem install ruby-binlog

== Required Privileges

  • SUPER
  • REPLICATION SLAVE
  • EVENT

== Example

#!/usr/bin/env ruby require "rubygems" require "binlog" require "pstore"

$db = PStore.new("/tmp/foo")

#master_log_file = "mysql-bin.000001" #master_log_pos = 4

master_log_file = nil master_log_pos = nil

$db.transaction do master_log_file = $db["master_log_file"] master_log_pos = $db["master_log_pos"] end

def save_position(master_log_file, master_log_pos) $db.transaction do $db["master_log_file"] = master_log_file $db["master_log_pos"] = master_log_pos end end

begin # XXX: Do not reuse a client instance, after connection goes out. client = Binlog::Client.new("mysql://repl:repl@example.com") sleep 0.3 until client.connect

if master_log_file and master_log_pos
  client.set_position(master_log_file, master_log_pos)
end

while event = client.wait_for_next_event
  puts "(#{event.event_type})"
  master_log_pos = event.next_position

  case event
  when Binlog::QueryEvent
    puts event.db_name
    puts event.query
    save_position(master_log_file, master_log_pos)
  when Binlog::RowEvent
    puts event.event_type
    puts event.db_name
    puts event.table_name
    p event.columns
    p event.rows
    save_position(master_log_file, master_log_pos)
  when Binlog::RotateEvent
    master_log_file = event.binlog_file
    master_log_pos = event.binlog_pos
    save_position(master_log_file, master_log_pos)
  end
end

rescue Binlog::Error => e puts e retry if client.closed? raise e end

== Notice

The following type are not supported in row mode.

  • DECIMAL
  • INT24
  • DATE
  • TIME
  • YEAR
  • BIT
  • ENUM
  • SET
  • GEOMETRY

see the following urls:

FAQs

Package last updated on 14 Mar 2013

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.