1、下载mysql源码
2、在mysql-5.7.25.tar\mysql-5.7.25\client下找到mysql.cc
3、在大概3697行左右,按照代码修改
主要是加粗部分
else if( !batchmode ){ sprintf(buff,"Query OK, %lld %s affected", mysql_affected_rows(&mysql), mysql_affected_rows(&mysql) == 1LL ? "row" : "rows"); const char *data; size_t length; if (mysql_session_track_get_first(&mysql, SESSION_TRACK_GTIDS, &data, &length) == 0) { /* print info type and initial data */ printf("mysql_session_track_get_first(): length=%d; data=%*.*s\n", (int) length, (int) length, (int) length, data); } }
4、对源码重新编译后,使用编译后的mysql连接mysql服务器
5、服务器需要设置
set global session_track_gtids=OWN_GTID;
set global session_track_state_change=true;
目前基本框架都不支持获取gtid
如果想要获取的话
1、在连接mysql的时候需要CLIENT_SESSION_TRACK,服务器才会返回。mysql发送登陆报文的时候,包括了客户端权能标志,我们要修改的就是权能标志,而CLIENT_SESSION_TRACK包含在客户端权能标志里面
2、接着就是继续修改源码,解析返回包
原文:https://www.cnblogs.com/1257433831qq/p/10457462.html