FLUSH PRIVILEGES!

Estoy casi seguro al 100% que siempre que he actualizado los datos de acceso de algún usuario en MySQL, ha fallado. Además, siempre por lo mismo: no recuerdo hacer FLUSH PRIVILEGES.

Principalmente tenemos dos formas de cambiar datos de un usuario, mediante UPDATE de la tabla user en la base de datos mysql, o usando la directiva GRANT. Incluso las contraseñas se pueden cambiar con mysqladmin.

Está claro que para dar un alta, lo mejor es GRANT (aunque un oldschool SQLer como yo nunca recuerde su sintáxis :P), y para cambiar una contraseña... mysqladmin.

Pero si queremos modificar una cuenta de usuario que solo funciona para el acceso cuando conectamos a un nombre de máquina contreto (por ejemplo: dbuser@servidor.local), para que sea general (desde cualquier ubicación), no hay más que entrar al UPDATE, que no hace un FLUSH TABLES implícito como el resto de mecanismos, y por lo tanto no recarga las tablas de acceso (y te tiras un buen rato atascado porque los cambios que haces parecen no funcionar :P).

Siguiendo con nuestro ejemplo:

código SQL
mysql> USE mysql;
mysql> UPDATE user SET Host='%' WHERE User='dbuser' AND Host='servidor.local';
mysql> FLUSH PRIVILEGES;

Es fácil, no tiene pérdida, y espero que con esta anotación no se me vuelva a olvidar el FLUSH PRIVILEGES, que al final, cuando lo recuerdas, se te queda cara de tonto por el rato que has perdido porque esto no funciona ;).


Publicidad

! Esta entrada no permite nuevos comentarios.

Los comentarios se bloquean automáticamente tras 15 días desde la publicación del artículo.

Si deseas comentar algo relacionado con el texto, puedes enviarme un e-mail.