Mariadb

Mysql:在 mysqldump 中設置變數

  • July 9, 2019

我最近在 mmy.cnf max_statement_time=120 中添加了一個全域變數;停止長時間執行的查詢並拋出異常。它工作正常。然後我無法執行 mysqldump 來備份我的所有數據庫,顯然我們有大型數據庫,所以使用 mysqldump 備份將需要幾個小時,因為我在這裡只將 max_statement_time 添加到 120 秒。那麼我如何通過 mysqldump 將其作為會話變數傳遞,以將其設置為僅用於 mysqldump 的小時,而全域值本身仍保持 120 秒。顯然我追求的是下面的東西:

mysqldump --max_statement_time=1000000 -u root -pMYPASS --all-databases > file.sql

我們有什麼選擇嗎?我通過 mysqldump 發現它有 –variable-name=value ,但它不接受這個。我正在使用 Mariadb 10.2 版本。

我相信您應該能夠通過將會話變數放在backup.cnf文件中來指定它:

max_statement_time=10000

然後使用--defaults-file=backup.cnf參數來mysqldump

(您還可以將使用者憑據放在該文件中,這樣您就不必在命令行上顯示使用者名和密碼,這是一個潛在的安全問題。)

我建議你創建一個新使用者只是為了傾銷。給它SUPER特權,讓它可以做它需要的事情。並且還給它無限max_execution_time

那麼你在猜測的地方就不需要額外的參數了。

引用自:https://dba.stackexchange.com/questions/223798