MySQL 导出导入存储过程definer问题

为什么80%的码农都做不了架构师?>>>   hot3.png

在准备从一台服务器导出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导出的存储过程包含以前库的数据库名,新库名不一样。

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

或者gzip

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

这时需要修改definer为新的库名

利用vi命令全局替换

:1,$ s/oldDBName/newDBName/g

替换后,再利用mysql命令导入

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

若是gzip压缩后的文件

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

遇到两次了,就记录下

转载于:https://my.oschina.net/fuye/blog/520942

你可能感兴趣的:(MySQL 导出导入存储过程definer问题)