Estou tentando restaurar o dump do banco de dados que tem o DEFINER= test
@ %
.
O arquivo de backup é de 50 GB.
SO - CentOS 7.5
Ao restaurar isso, recebi o erro abaixo.
ERROR 1227 (42000) at line 30908: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
A linha 30908 é,
CREATE DEFINER=`test`@`%` PROCEDURE `myprod`(IN id INT)
Então eu tentei remover o definidor usando perl.
perl -p -i.bak -e "s/DEFINER=\`\w.*\`@\`\d[0-3].*[0-3]\`//g" my_dump_file.sql
É executado, mas depois disso também, recebi o mesmo problema e não foi alterado no arquivo.
Então eu tentei,
sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' < my_dump_file.sql > my_dump_file.new
Isso também é executado e tentou restaurar my_dump_file.new, mas ainda o mesmo problema na mesma linha.
Então, finalmente, tentei criar um usuário no MySQL.
create user `test`@`%` identified by 'test';
grant all on *.* to `test`@`%`;
flush privileges;
Novamente, estou recebendo o mesmo problema.
Alguém pode me ajudar a consertar isso?
Notas:
-r
: melhor sintaxe\s
: qualquer espaço em branco (por exemplo, guias também)\S
: não-espaço(Eu testei no Ubuntu, não no CentOS.)