2012-04-02 8 views
6

Devo eseguire il backup del mio database, ma quando provo a svuotare i tavoli prima del backup ottengo questo errore? Cosa significa per privilegio RELOAD?flush tables - accesso negato

Impossibile trovare alcun privilegio RELOAD in phpmyadmin !?

Error: Access denied; you need the RELOAD privilege for this operation 
SQL: FLUSH TABLES WITH READ LOCK 

risposta

1

Probabilmente non sei in esecuzione FLUSH comando utilizzando radice, ma con un utente limitato.
È necessario disporre del privilegio RELOAD per eseguire il comando FLUSH.
Dai un'occhiata a here per i privilegi MySQL.
Così (per esempio) utente root dovrebbe usare:

GRANT RELOAD ON *.* TO 'your_user'@'localhost'; 
+0

significa che posso farlo invece? '# mysqladmin flush-tables'? – clarkk

+0

@clarkk: se hai il privilegio di 'RELOAD', puoi eseguire i comandi di' mysqladmin' che usano 'FLUSH' ... Ma devi aspettare di ottenere il privilegio di' RELOAD' ... – Marco

+0

dove mettere la password nel tuo interrogare? – clarkk

15

per chiarire:
RELOAD può essere concessa solo a livello globale, non a un particolare database. Necessità di utilizzare *.*

GRANT RELOAD ON *.* TO 'your_user'@'localhost'; 

Dalla documentazione MySQL: GRANT Syntax - Global Privileges

CREATE USER, FILE, PROCESSO, RELOAD, REPLICATION CLIENT, REPLICATION SLAVE, MOSTRA DATABASES, arresto e privilegi SUPER sono amministrativo e può essere concesso solo a livello globale.

+0

grazie a @codewaggie per aver fornito la risposta giusta. –