没有 SQL_BIG_SELECTS 的 mysqldump

没有 SQL_BIG_SELECTS 的 mysqldump

尝试转储所有数据库以创建复制

mysqldump --all-databases --master-data --single-transaction > all_databases.sql

结果出现以下错误

mysqldump:无法执行“SELECT /*!40001 SQL_NO_CACHE */ * FROM xxxtable”:SELECT 将检查超过 MAX_JOIN_SIZE 行;检查您的 WHERE 并使用 SET SQL_BIG_SELECTS=1 或 SET MAX_JOIN_SIZE=#(如果 SELECT 没问题)(1104)

有没有办法确保 mysqldump 正常工作,而无需重新启动服务器并更新其中的 my.cnf?当然,我们不想总是在生产服务器上启用大选择。

使用 MySQL 5.6

答案1

在启动 mysqldump 之前,您可以发送此查询来检查是否有可用的大选择:

选择@@global.SQL_BIG_SELECTS;

然后你可以使用

设置@@global.SQL_BIG_SELECTS = 1;

并再次禁用(转储后)使用

设置@@global.SQL_BIG_SELECTS = 0;

相关内容