MySql 匯出 Procedure 和 Function

  1. 1. 匯出指令
  2. 2. mysqldump: insufficient privileges to show create function
  3. 3. 參考資料
1
mysqldump -u user -p db-name --routines > export-file.sql

匯出指令

過去的指令為

1
mysqldump -u <user> -p <db-name> > <file-name>.sql

之前匯出的指令包含 table 的 create,以及資料的 insert,但是後來嘗試開始使用 Procedure,發現並沒有一起匯出。

如果要一起將 Procedure 和 Function 一併匯出,需要加上 routines 參數

1
mysqldump -u <user> -p <db-name>  --routines > <file-name>.sql

PS. 也會將 Trigger 也匯出,只是我還沒有用過 Trigger


mysqldump: insufficient privileges to show create function

如果你遇到此問題,是因為登入 MySql 的使用者權限不足,假設登入的是 user01,而 user01 只有在某個 Database 有所有權限是不夠的。

請替 user01 增加預儲程序的權限

1
GRANT SELECT ON mysql.proc to 'user01';

記得要刷新權限

1
FLUSH PRIVILEGES;

參考資料

dumping-mysql-stored-procedures-functions-and-triggers

mysqldump: insufficient privileges to show create function ‘funcation name’