在准备从一台服务器导出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