binlog2sql icon indicating copy to clipboard operation
binlog2sql copied to clipboard

启动多个客户端的时候,server_id冲突

Open hipudding opened this issue 7 years ago • 0 comments

请问是否是有意这样设计,如果是的话是因为什么?

如果没有特别设计,解决该问题path,请参考是否采纳

--- a/binlog2sql/binlog2sql.py
+++ b/binlog2sql/binlog2sql.py
@@ -4,6 +4,7 @@
 import sys
 import datetime
 import pymysql
+import random
 from pymysqlreplication import BinLogStreamReader
 from pymysqlreplication.event import QueryEvent, RotateEvent, FormatDescriptionEvent
 from binlog2sql_util import command_line_args, concat_sql_from_binlog_event, create_unique_file, temp_open, \
@@ -56,8 +57,9 @@ class Binlog2sql(object):
                 if binlog2i(self.start_file) <= binlog2i(binary) <= binlog2i(self.end_file):
                     self.binlogList.append(binary)

-            cursor.execute("SELECT @@server_id")
-            self.server_id = cursor.fetchone()[0]
+            #cursor.execute("SELECT @@server_id")
+            #self.server_id = cursor.fetchone()[0]
+            self.server_id=random.randint(1024,4294967295)
             if not self.server_id:
                 raise ValueError('missing server_id in %s:%s' % (self.conn_setting['host'], self.conn_setting['port']))

hipudding avatar Nov 14 '18 07:11 hipudding