我试图在数据库架构更改之前在 CI 中备份我的数据库并进行本地开发。 然而最近我们遇到了一个问题,一些表太大而无法转储,我们收到以下错误:
mysqldump:错误3024:查询执行被中断,最大 转储表
时语句执行时间超出 行:24988140social_post
经过调查,我发现如果我将
max_execution_time
从600000(10分钟)修改为0(无限制)。备份有效,大约需要 1 小时 10 分钟才能完成完整备份。 (我们尝试了15分钟甚至20分钟都不够)
我们不想永久将此值设置为无限制,因为可能会产生后果,我们只想在 mysqldump 期间更改它。
有没有办法为mysqldump设置
max_execution_time
。
mysqldump --defaults-extra-file=login.cnf --set-gtid-purged=OFF --single-transaction --events --routines --no-create-info --no-create-db --skip-triggers --complete-insert --verbose --quick database_name > data.sql
这可能会有所帮助。在此文档中搜索“max_execution_time”。 https://dev.mysql.com/doc/refman/8.0/en/optimizer-hints.html#optimizer-hints-execution-time