2012-04-02 2 views
6

J'ai besoin de sauvegarder ma base de données, mais en essayant de vider les tables avant de sauvegarder, j'ai cette erreur? Qu'est-ce que cela signifie par privilège RELOAD?tables de vidage - accès refusé

Vous ne trouvez aucun privilège RELOAD dans phpmyadmin !?

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

Répondre

1

Probablement vous n'êtes pas en cours d'exécution commande FLUSH en utilisant la racine, mais avec un utilisateur limité.
Vous devez disposer du privilège RELOAD pour exécuter la commande FLUSH.
Jetez un oeil here pour les privilèges MySQL.
donc (par exemple) utilisateur root doit utiliser:

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

cela signifie que je peux le faire à la place? '# # mysqladmin flush-tables'? – clarkk

+0

@clarkk: si vous avez le privilège 'RELOAD', vous pouvez exécuter les commandes' mysqladmin' qui utilisent 'FLUSH' ... Mais vous devez attendre d'avoir le privilège' RELOAD' ... – Marco

+0

où est-ce que je mets le mot de passe dans votre question? – clarkk

15

Pour clarifier:
RELOAD ne peut être accordée à l'échelle mondiale, et non à une base de données particulière. Besoin d'utiliser *.*

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

De la documentation MySQL: GRANT Syntax - Global Privileges

L'CREER USER, FILE, PROCESSUS, RELOAD, CLIENT REPLICATION, REPLICATION SLAVE, SHOW DATABASES, shutdown, et les privilèges SUPER sont administratif et ne peut être accordé que globalement.

+0

merci @codewaggie pour fournir la bonne réponse. –