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:
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 ;).
Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.