【问题标题】:How to completely disable GTID in mysql 5.7?如何在 mysql 5.7 中完全禁用 GTID?
【发布时间】:2026-01-09 00:20:07
【问题描述】:

由于我的 mysql 数据库仅用于小型 Web 应用程序,因此我不需要任何复制功能。在监视时,我注意到一个名为 thread/sql/compress_gtid_table 的东西。在使用mysqldump 转储一些表格时,我收到了以下警告:

Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions, even those that changed suppressed parts of the database. If you don't want to restore GTIDs, pass --set-gtid-purged=OFF. To make a complete dump, pass --all-databases --triggers --routines --events.

我如何确定所有 GTID 功能都已完全禁用且不会造成开销?

这是我的配置:

mysql> SHOW VARIABLES LIKE '%GTID%';
+----------------------------------+----------------+
| Variable_name                    | Value          |
+----------------------------------+----------------+
| binlog_gtid_simple_recovery      | ON             |
| enforce_gtid_consistency         | OFF            |
| gtid_executed_compression_period | 1000           |
| gtid_mode                        | OFF            |
| gtid_next                        | AUTOMATIC      |
| gtid_owned                       |                |
| gtid_purged                      |                |
| session_track_gtids              | OFF            |
+----------------------------------+----------------+

【问题讨论】:

    标签: mysql database-administration gtid


    【解决方案1】:

    我只是在搜索该警告时链接到此处。我正在设置 GTID,但此页面可能对您有所帮助:https://dev.mysql.com/doc/refman/5.7/en/replication-gtids-howto.html

    请注意,一旦开启 GTID,您将无法轻松返回。我确信有办法,但它可能不值得麻烦。

    【讨论】:

      【解决方案2】:

      在你禁用 GTID 复制并且你不需要更多旧的二进制日志(带有 GTID 信息)并且从站已经赶上了所有的二进制日志信息后,你可以停止从站并执行 reset master; 它会清除服务器上的所有二进制日志并且不会保留更多的 gtid 信息。请参阅此post 如何正确重新同步复制。

      【讨论】: