Declaração do problema
mysqldump --add-drop-database --all-database
cria um dump que contém
....
/*!40000 DROP DATABASE IF EXISTS 'mysql'*/;
....
Isso é esperado e acredito que seja um comportamento correto.
No entanto, se cat'ing este despejo em um servidor mysql, ou seja, cat dump | mysql -u root -pxxxx
(A conta tem SUPER), ele reclama ERROR 3552 (HY000) at line 30: Access to system schema 'mysql' is rejected.
Pergunta
Existe alguma maneira de fazer isso funcionar, sem editar manualmente o despejo.
Ou sed / grep para remover a linha ofensiva é a minha única escolha?
Isso costumava funcionar no MySQL 5.6 (ou seja, ele aceita a remoção do banco de dados mysql)
A conta root tem os seguintes privilégios SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, CREATE ROLE, DROP ROLE, BACKUP_ADMIN, RESOURCE_GROUP_ADMIN, XA_RECOVER_ADMIN
Servidor e Cliente: MySQL 8.0.12