Aqui está uma solução de trabalho completa para remover informações do DEFINER para MySQL 5.6.xe Linux. (Testado emCentOS 6.5 ).
Normalmente, temos que substituir as seguintes entradas de despejo do Mysql (se tomadas junto com dados e gatilhos / rotinas / funções).
/*!50013 DEFINER=`MYSQLUSER`@`localhost` SQL SECURITY DEFINER */
/*!50013 DEFINER=`MYSQLUSER`@`%` SQL SECURITY DEFINER */
CREATE DEFINER=`MYSQLUSER`@`%` PROCEDURE `PROCEDURENAME`(
CREATE DEFINER=`MYSQLUSER`@`localhost` PROCEDURE `PROCEDURENAME`(
CREATE DEFINER=`MYSQLUSER`@`%` FUNCTION `FUNCTIONNAME`(
CREATE DEFINER=`MYSQLUSER`@`localhost` FUNCTION `FUNCTIONNAME`(
/*!50003 CREATE*/ /*!50017 DEFINER=`MYSQLUSER`@`%`*/ /*!50003 TRIGGER `TRIGGERNAME`
/*!50003 CREATE*/ /*!50017 DEFINER=`MYSQLUSER`@`localhost`*/ /*!50003 TRIGGER `TRIGGERNAME`
O dump foi feito com o comando mysqldump abaixo.
mysqldump -uMYSQLUSER -pPASSWORD DATABASENAME -R > dbdump.sql
O arquivo de despejo necessário sem informações do DEFINER pode ser obtido com os três comandos abaixo.
Command-1
sed -i 's|DEFINER=[^*]*\*|\*|g' [PATH/]dbdump.sql
Command-2
find -name [PATH/]dbdump.sql | xargs perl -pi -e "s/ DEFINER=\`MYSQLUSER\`@\`localhost\`//"
Command-3
find -name [PATH/]dbdump.sql | xargs perl -pi -e "s/ DEFINER=\`MYSQLUSER\`@\`%\`//"
Se o arquivo de despejo estiver na pasta atual, ignore [PATH /].
Se os dados nas tabelas forem muito grandes, faça o despejo em dois arquivos, em um arquivo despeje o despejo com os dados e em outro arquivo de despejo apenas faça o despejo dos scripts (acionadores / funções / procedimentos.) E execute os três acima comandos no segundo arquivo de despejo (scripts).