inconsistency between @@global.gtid_executed and mysql.gtid_executed Starting MySQL 5.7.6, mysql.gtid_executed is supposed to keep track of all gtids executed.

However in MySQL 5.7.14, I am seeing a scenario as shown below:

mysql&gt; select @@global.gtid_executed;
+-----------------------------------------------------------------------+
| @@global.gtid_executed                                                |
+-----------------------------------------------------------------------+
| cd5cd102-6586-0742-6f26-5b4c4c17d44d:4294967296:8589934592-8589939092 |
+-----------------------------------------------------------------------+

1 row in set (0.00 sec)

mysql&gt; select * from mysql.gtid_executed;
Empty set (0.00 sec)


Can this discrepancy be explained?
mysql.gtid_executed is an internal table used to support some specific use cases; it's not meant to be monitored/used like @@global.gtid_executed (and other ways to access it, such as performance_schema.global_variables).

And it's only updated at certain times, which is what you were seeing. You can read more about it here.