在準備從一臺服務器導出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