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

相关文章
相关标签/搜索