2012-04-02 29 views
6

Necesito respaldar mi base de datos, pero cuando intento vaciar las tablas antes de hacer una copia de seguridad, ¿aparece este error? ¿Qué significa el privilegio RELOAD?tablas de acceso - acceso denegado

¿No encuentras ningún privilegio RELOAD en phpmyadmin?

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

Respuesta

1

Probablemente usted no está funcionando FLUSH comando usando la raíz, pero con un usuario limitado.
Se le debe otorgar el privilegio RELOAD para ejecutar el comando FLUSH.
Echa un vistazo a here para privilegios de MySQL.
Así que (por ejemplo) el usuario root debe utilizar:

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

significa que puedo hacer esto en su lugar? '# mysqladmin flush-tables'? – clarkk

+0

@clarkk: si tiene el privilegio 'RELOAD', puede ejecutar los comandos' mysqladmin' que usan 'FLUSH' ... Pero debe esperar para obtener el privilegio' RELOAD' ... – Marco

+0

donde puse la contraseña en su ¿consulta? – clarkk

15

Para aclarar:
RECARGA sólo se puede conceder el mundo, sin una base de datos en particular. Necesidad de utilizar *.*

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

De la documentación de MySQL: GRANT Syntax - Global Privileges

el usuario, ARCHIVO, proceso de creación, recargar, CLIENTE REPLICACION, ESCLAVO REPLICACION, VER BASES DE DATOS, apagado, y SUPER son administrativo y solo se puede otorgar a nivel mundial.

+0

gracias @codewaggie por proporcionar la respuesta correcta. –