![深入理解MySQL主从原理](https://wfqqreader-1252317822.image.myqcloud.com/cover/513/37423513/b_37423513.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.1.3 server_uuid的生成
在GTID中包含了一个server_uuid。server_uuid实际上是一个32字节+1(/0)字节的字符串。MySQL启动时会调用init_server_auto_options函数读取auto.cnf文件。如果auto.cnf文件丢失,则会调用generate_server_uuid函数生成一个新的server_uuid,但是需要注意,这样GTID必然会发生改变。
在generate_server_uuid函数中可以看到,server_uuid至少和下面3部分有关。
(1)数据库的启动时间。
(2)线程的LWP ID,其中,LWP是轻量级进程(Light-Weight Process)的简称,我们在5.1节会进行描述。
(3)一个随机的内存地址。
下面是部分代码:
![](https://epubservercos.yuewen.com/A01218/19823444008569806/epubprivate/OEBPS/Images/txt001_1.jpg?sign=1739340100-MvYRQXT9Rl0AedTFyYdTKT6JjQ3BiKZo-0-6814ff92ef0ed0398f022ce89e4d7ce8)
server_uuid的内部表示是binary_log::Uuid,核心是一个16字节的内存空间,在GTID相关的Event中会包含这个信息,2.3节会进行详细解析。