Não foi possível executar 'show events' no mysqldump

6

Ao tentar fazer backup de todos os bancos de dados MySQL com mysqldump, recebo o seguinte erro:

Couldn't execute 'show events': Access denied for user 'user'@'localhost' to database 'performance_schema'

    
por Adrian Ber 06.11.2013 / 16:07

4 respostas

4

Este é um banco de dados virtual, então você precisará adicionar a opção --skip-events para fazer funcionar.

    
por 06.11.2013 / 16:07
2

'performance_schema' é um banco de dados virtual para que você não precise fazer backup dele | (consulte o link )

para pular em seu script de backup, use-o da seguinte forma:

#!/bin/sh
BAK=/var/backups/mysql/
DATE=$(date +%Y-%m-%d)
MYSQLPATH=/var/lib/mysql/
for i in /var/lib/mysql/*/; do
    if [ $i != "$MYSQLPATH"'performance_schema/' ] ; then 
        dbname='basename "$i"' 
        mysqldump -u root "$dbname" | gzip > $BAK/"$dbname"-$DATE.sql.gz
    fi
done

# optionally delete old backups of databases that don't exist anymore
# find $BACKUP_DIR -atime +30 -exec rm {} \;
    
por 20.11.2013 / 12:48
2

As outras duas respostas funcionarão , mas suas justificativas e explicações estão erradas.

O erro que você está recebendo é não devido a o banco de dados ser virtual, mas devido a um erro com a consulta show events :

SHOW EVENTS in the performance_schema database returned an access-denied error, rather than an empty result

O bug foi corrigido no servidor MySQL 5.7.6. Basta atualizar seu servidor e você não verá mais esse erro.

Nesse meio tempo, se você estiver preso a versões mais antigas do servidor MySQL, evite chamar show events usando as soluções fornecidas nas outras duas respostas.

    
por 04.02.2015 / 07:56
2

Se você encontrou esse erro com um banco de dados comum, precisa conceder ao seu usuário o Permissão de EVENTO .

    
por 05.08.2015 / 12:43

Tags