2015-10-21 19 views
15

Quando provo a fare funzionare mysqldump -u dump -p myschema > dumpfile.sql ottengo questo messaggio di errore:errore (1142) comando SELECT negata sul tavolo session_variables con mysqldump

mysqldump: Couldn't execute 'SHOW VARIABLES LIKE 'gtid\_mode'': SELECT command denied to user 'dump'@'localhost' for table 'session_variables' (1142)

ho trovato something di aggiungere --set-gtid-purged=OFF per un errore simile. Ma non sto eseguendo la versione 5.6 di MySQL di mysqldump su un database MySQL più vecchio. Tuttavia, quando provo, ottengo un nuovo, eppure simili, errore:

mysqldump: Couldn't execute 'SHOW VARIABLES LIKE 'ndbinfo\_version'': SELECT command denied to user 'dump'@'localhost' for table 'session_variables' (1142)

Non sono sicuro che il motivo per cui l'utente deve accedere alla tabella session_variables, che presumo sia information_schema.SESSION_VARIABLES, dal momento che this SO post detto che le seguenti autorizzazioni erano sufficienti. ​

Borse di studio per discarica @ localhost

GRANT USAGE ON *.* TO 'dump'@'localhost' 
GRANT SELECT, LOCK TABLES ON mysql.* TO 'dump'@'localhost' 
GRANT SELECT, LOCK TABLES, SHOW VIEW, EVENT, TRIGGER ON myschema.* TO 'dump'@'localhost' 

cosa sta succedendo e come posso far funzionare mysqldump?

Ecco alcune delle mie informazioni di sistema

MySQL versione

Server versione: 5.7.8-rc

versione mysqldump MySQL Community Server (GPL)

Ver 10.13 Distrib 5.7.8-rc, per Linux (x86_64)

risposta

31

Questo è il risultato dell'aggiornamento del server mysql. Run

# mysql_upgrade -u root -p --force 
# systemctl restart mysqld 
+0

Penso che tu abbia ragione, ma non ho eseguito questo codice. Ho notato l'altra settimana che c'erano patch per i pacchetti mysql. Ho aggiornato sei pacchetti a '5.7.9-1.el7' e questo ha chiarito il problema, in particolare' mysql-community-client', 'mysql-community-common',' mysql-community-libs', 'mysql-community -libs-compat', 'mysql-community-release' e' mysql-community-server'. Non sono sicuro del perché stia succedendo, ma sono contento che funzioni ora. – kas

+0

Se l'utente root mysql locale non ha una password, eseguire 'mysql_upgrade -u root --force' –

+0

Questa operazione aggiornerà le colonne se necessario. Ho numerose colonne datetime e ho un sacco di "TIME/TIMESTAMP/DATETIME colonne di vecchio formato sono state aggiornate al nuovo formato." avvertenze. – txyoji