Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Remova a cláusula DEFINER dos dumps do MySQL


Eu não acho que haja uma maneira de ignorar a adição de DEFINER s para o lixão. Mas existem maneiras de removê-los após a criação do arquivo de despejo.

  1. Abra o arquivo de despejo em um editor de texto e substitua todas as ocorrências de [email protected] com uma string vazia ""

  2. Edite o dump (ou canalize a saída) usando perl :
    perl -p -i.bak -e "s/DEFINER=\`\w.*\`@\`\d[0-3].*[0-3]\`//g" mydatabase.sql
    

  3. Enviar a saída por meio de sed :
    mysqldump ... | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' > triggers_backup.sql