mysqldump 報錯 ERROR 1305 (42000) FUNCTION

用mysqldump 備份數據庫,而後恢復的時候報錯以下:mysql

 ERROR 1305 (42000) at line 9089: FUNCTION 538329e1768cd.Fn_ParentsList_Select does not exist

通過查找,發現是mysqldump 不加任何參數的狀況下是不會導出存儲過程與函數,若是須要導出函數與存儲過程須要加一個 -Rweb

這樣導出的sql 文件裏面才包括存儲過程與函數sql

若是隻須要導出存儲過程,函數,則執行:shell

mysqldump --database dbname -ntdR --triggers=false>dbname.sql

  其中,-d 表示--no-create-db, -n表示--no-data, -t表示--no-create-info, -R表示導出function和procedure。因此上述代碼表示僅僅導出函數和存儲過程,不導出表結構和數據。  --triggers=false 表示不導出  triggers數據庫

數據與函數,存儲過程全導出,執行:less

mysqldump --database dbname -R >dbname.sql

另一個錯誤,在配置文件中加入:函數

log-bin-trust-function-creators=1
或者是:
set global log_bin_trust_function_creators=1;

不然報錯以下:spa

This FUNCTION has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary
logging is enabled (you *might* want to use the less safe log_bin_trust_FUNCTION_creators 
variable)
相關文章
相關標籤/搜索