Bug #67989 MySQL Internals documentation missing 5.6 binlog protocol parts
Submitted: 29 Dec 2012 17:41 Modified: 11 Jul 2017 11:06
Reporter: Andrew Hutchings Email Updates:
Status: Won't fix Impact on me:
None 
Category:MySQL Server: Documentation Severity:S3 (Non-critical)
Version: OS:Any
Assigned to: Georgi Kodinov CPU Architecture:Any

[29 Dec 2012 17:41] Andrew Hutchings
Description:
In version 5.6.1 MySQL binary log protocol changed slightly, this isn't reflected properly in the internals docs.

Things missing:
* master_binlog_checksum user var needs setting before binlog dump command set to state client is checksum compatible
* CRC32 based checksums are stored in the last 4 bytes of the event
* checksum is for that event only (entire event, not just data), not over the entire binlog
* if server version>=5.6.1 events will have checksum, otherwise they won't (use the format description event for test).

Other related problems:
The following isn't documented:
* Event types
  o GTID_EVENT 
  o ANONYMOUS_GTID_EVENT 
  o PREVIOUS_GTIDS_EVENT
  o IGNORABLE_EVENT 
* Server UUID format (it appears to be a time encoded UUIDv1)

Things that appear to be documented wrong:
* COM_BINLOG_DUMP_GTID appears to require data_size even without flag
* COM_BINLOG_DUMP_GTID data variable appears to be encoded, not a straight data packet as documented

These last two are based on code observations and attempts to use that command code based on documentation.

How to repeat:
RTFM, hack on code
[2 Jan 2013 7:58] MySQL Verification Team
Referencing: http://dev.mysql.com/doc/internals/en/replication-protocol.html
[5 Jul 2017 17:07] Stefan Hinz
Posted by developer:
 
No more updates are made to the MySQL Internals documentation, because it's in the process of being replaced by https://dev.mysql.com/doc/dev/mysql-server/latest/.