您好,登錄后才能下訂單哦!
這篇文章主要介紹“MySQL報錯mysqldump Error 3024: Query execution was interrupted怎么解決”,在日常操作中,相信很多人在MySQL報錯mysqldump Error 3024: Query execution was interrupted怎么解決問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”MySQL報錯mysqldump Error 3024: Query execution was interrupted怎么解決”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
數據庫版本:MySQL 5.7.16
mysqldump完整報錯:
mysqldump: Error: Query execution was interrupted, maximum statement execution time exceeded when trying to dump tablespaces
mysqldump: Error 3024: Query execution was interrupted, maximum statement execution time exceeded when dumping table `$tb_name` at row: 25002
在SELECT時也有可能報該錯:
ERROR 3024 (HY000): Query execution was interrupted, maximum statement execution time exceeded
檢查bug庫,發現同樣問題:
https://bugs.mysql.com/bug.php?id=83339
原因是max_execution_time設置過小導致。
復現:
將max_execution_time設置成很小的值,執行mysqldump(本質也是執行SELECT)或者SELECT語句:
[17:23:01] root@localhost [(none)]> SET GLOBAL max_execution_time=10;
Query OK, 0 rows affected (0.00 sec)
[17:23:11] root@localhost [(none)]> SELECT * FROM test.t1 LIMIT 100000;
ERROR 3024 (HY000): Query execution was interrupted, maximum statement execution time exceeded
mysqldump -uxxx -pxxx -S -A > /tmp/a.sql
mysqldump: Error 3024: Query execution was interrupted, maximum statement execution time exceeded when dumping table `$tb_name` at row: 0
解決辦法:
① 通過hints,增大N值(文檔說,在hints用法中,將N改為0為無限制,但我測下來不生效,可設置成一個較大值如999999解決)
SELECT /*+ MAX_EXECUTION_TIME(N) */ * FROM t1 LIMIT 100000;
② 修改max_execution_time值,將該值設置為較大一個值,或設置為0(不限制)
相關參數:
max_execution_time
該參數5.7.8被添加,單位為ms,動態參數,默認為0。
設置為0時意味著SELECT超時不被設置(不限制超時時間)。
不作用于存儲過程中的SELECT語句,并且只作用于只讀的SELECT,比如INSERT ... SELECT ... 是不被作用的。
到此,關于“MySQL報錯mysqldump Error 3024: Query execution was interrupted怎么解決”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。