【问题标题】:percona pt-table sync message Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clausepercona pt-table 同步消息 如果没有 GROUP BY 子句,则混合没有 GROUP 列的 GROUP 列 (MIN(),MAX(),COUNT(),...) 是非法的
【发布时间】:2014-09-09 05:03:28
【问题描述】:

我在我的环境中使用 pt-table 同步,我正在使用以下命令进行同步

/percona-toolkit/2.2.7/bin/pt-table-sync --execute --sync-to-master --no-unique-checks --no-check-child-tables --no-foreign -key-checks --databases=dbname h=localhost -uroot -ppwd -P 3306

错过同步的匹配数据但收到以下消息,

如果没有 GROUP BY 子句,则没有 GROUP 列的 GROUP 列 (MIN(),MAX(),COUNT(),...) 的混合是非法的 [for Statement "SELECT MAX(LENGTH(macaddress) ) FROM dbname.tablename01 ORDER BY macaddress"] 在第 4060 行,同时在本地主机上执行 whirl.newPluginsLog

我想确认这些发生是由于 MySQL 服务器中的一些配置错误或我的表中的某些错误,或者我错过了一些使用 pt-table-sync 的开关。

或者它是 pt-table-sync 中的一个错误?

【问题讨论】:

  • 如果您启用了only_full_group_by 模式,就会发生这种情况。
  • 嗨,Barmar,感谢您的回复,pt-table-sync 中是否有任何开关可用于禁用它。
  • 不知道,我对 Percona 一无所知。这是一个 MySQL 设置,通常这个选项是关闭的。
  • 好的,谢谢,我明白了,我必须在运行 percona 之前禁用它。感谢您的回复。

标签: mysql percona


【解决方案1】:

感谢 Barmar,它消除了我的疑虑并帮助我解决了这个问题。
实际上在 my.cnf sql_mode 中包含 ONLY_FULL_GROUP_BY ,这就是为什么我面临 percona pt-table-sync 的问题。

我通过使用 set global sql_mode 简单地从主服务器和从服务器禁用它并删除此变量“ONLY_FULL_GROUP_BY”,然后运行 ​​pt-table-sync,它开始工作。

感谢 Barmar 为我指明了正确的方向。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-11
    • 1970-01-01
    • 2020-04-02
    • 2019-02-11
    • 2016-01-10
    • 1970-01-01
    • 1970-01-01
    • 2020-07-05
    相关资源
    最近更新 更多