首页 > 代码库 > PHP Client for Mysql Binlog
PHP Client for Mysql Binlog
PHP解析MySQL Binlog,依赖于mysql-replication-listener库
详见:https://github.com/bullsoft/php-binlog
Install MySQL Replication Listener
- https://github.com/bullsoft/mysql-replication-listener/archive/master.zip
unzip mysql-replication-listener-master.zipcd mysql-replication-listener-mastercmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-replicationmake & make install
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
Install php-binlog
- https://github.com/bullsoft/php-binlog/archive/master.zip
unzip php-binlog-master.zipcd php-binlog-master/ext/usr/local/php5.5.15/bin/phpize./configure --with-php-config=/usr/local/php5.5.15/bin/php-config --with-mysql-binlog=/usr/local/mysql-replication
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
Examples
注:Binlog为行格式
<?php$link = binlog_connect("mysql://root:cpyf@127.0.0.1:3306");//binlog_set_position($link, 4); //binlog_set_position($link, 4, ‘mysql-bin.000006‘); while($event=binlog_wait_for_next_event($link)) { // it will block here switch($event[‘type_code‘]) { case BINLOG_DELETE_ROWS_EVENT: var_dump($event); // do what u want ... break; case BINLOG_WRITE_ROWS_EVENT: var_dump($event); // do what u want ... break; case BINLOG_UPDATE_ROWS_EVENT: var_dump($event); // do what u want ... break; default: // var_dump($event); break; }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
Update_rows
update `type` set type_id = 22 WHERE id in (58, 59);
- 1
- 1
array(5) { ‘type_code‘ => int(24) ‘type_str‘ => string(11) "Update_rows" ‘db_name‘ => string(5) "cloud" ‘table_name‘ => string(4) "type" ‘rows‘ => array(4) { [0] => array(5) { [0] => string(2) "58" [1] => string(8) "adsfasdf" [2] => string(4) "asdf" [3] => string(2) "22" [4] => string(1) "0" } [1] => array(5) { [0] => string(2) "58" [1] => string(8) "adsfasdf" [2] => string(4) "asdf" [3] => string(1) "4" [4] => string(1) "0" } [2] => array(5) { [0] => string(2) "59" [1] => string(8) "adsfasdf" [2] => string(4) "asdf" [3] => string(2) "22" [4] => string(1) "0" } [3] => array(5) { [0] => string(2) "59" [1] => string(8) "adsfasdf" [2] => string(4) "asdf" [3] => string(1) "4" [4] => string(1) "0" } }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
Delete_rows
delete from `type` WHERE id in (58, 59);
- 1
- 1
array(5) { ‘type_code‘ => int(25) ‘type_str‘ => string(11) "Delete_rows" ‘db_name‘ => string(5) "cloud" ‘table_name‘ => string(4) "type" ‘rows‘ => array(2) { [0] => array(5) { [0] => string(2) "58" [1] => string(8) "adsfasdf" [2] => string(4) "asdf" [3] => string(2) "22" [4] => string(1) "0" } [1] => array(5) { [0] => string(2) "59" [1] => string(8) "adsfasdf" [2] => string(4) "asdf" [3] => string(2) "22" [4] => string(1) "0" } }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
Write_rows
insert into type values (Null, "Hello, World", "Best world", 4, 0), (NULL, "你好,世界", "世界很美好", 3, 5);
- 1
- 1
array(5) { ‘type_code‘ => int(23) ‘type_str‘ => string(10) "Write_rows" ‘db_name‘ => string(5) "cloud" ‘table_name‘ => string(4) "type" ‘rows‘ => array(2) { [0] => array(5) { [0] => string(2) "95" [1] => string(12) "Hello, World" [2] => string(10) "Best world" [3] => string(1) "4" [4] => string(1) "0" } [1] => array(5) { [0] => string(2) "96" [1] => string(15) "你好,世界" [2] => string(15) "世界很美好" [3] => string(1) "3" [4] => string(1) "5" } }}
PHP Client for Mysql Binlog
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。