MySQL 導出導入存儲過程definer問題

在準備從一臺服務器導出mysql 的存儲過程到另一臺機器數據庫的時候,發現一直報錯mysql

ERROR 1227 (42000) at line 25: Access denied; you need (at least one of) the SUPER privilege(s) for this operation

網上一查原來是definer的問題,利用 mysqldump -R導出的存儲過程包含之前庫的數據庫名,新庫名不同。sql

mysqldump dbName -R -d -t -uroot -p > procedure.sql

或者gzip數據庫

mysqldump dbName -R -d -t -uroot -p > gzip -9 | procedure.gz

這時須要修改definer爲新的庫名服務器

利用vi命令全局替換this

:1,$ s/oldDBName/newDBName/g

替換後,再利用mysql命令導入code

mysql -h ip -u root -p < procedure.sql

如果gzip壓縮後的文件ip

gunzip < procedure.gz | mysql -h ip -u root -p

遇到兩次了,就記錄下io

相關文章
相關標籤/搜索