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、接着就是继续修改源码,解析返回包