- set wait_timeout=9999999
连接空闲超时时间,默认为8消息,用于 Canal Slave 的等待超时时间远大于默认值。
- set net_write_timeout=1800
网络写请求超时时间,针对正在进行数据读写的连接,该值默认为 60s。
- set net_read_timeout=1800
网络读请求超时时间,针对正在进行数据读写的连接,该值默认为 30s。
- set names ‘binary’
设置服务端返回结果时不做编码转化,直接按照数据库的二进制编码进行发送,由客户端自己根据需求进行编码转化。
- set @master_binlog_checksum= @@global.binlog_checksum
设置master_binlog_checksum,因为在mysql5.6之后为binlog引入了checksum机制,例如crc32,canal作为mysql slave,需要与服务端相关参数保持一致。
- set @slave_uuid=uuid()
canal相对与mysql数据库服务而言就是一个从服务器,这个指令用于设置server_id,使用uuid,避免server_id重复。
- SET @master_heartbeat_period=15
设置客户端与服务端心跳发送间隔,默认为15s。
Step2:从主库查询binlog checksum,具体向主库发送 select @@global.binlog_checksum 语句。
Step3:向MySQL Master 注册从节点,告知客户端的host、port、用户名与密码、serverId,具体实现是发送命令CODE为 0x15。