Ese mensaje de error generalmente significa que la contraseña que estamos usando no coincide con lo que MySQL cree que debería ser la contraseña para el usuario con el que nos estamos conectando, o que no existe un usuario de MySQL coincidente (no se ha creado). /P>
En MySQL, un usuario se identifica por un nombre de usuario ("test2") y un anfitrión ("localhost").
El mensaje de error identifica al usuario ("test2") y el host valores ("localhost")...
'test2'@'localhost'
Podemos verificar si el usuario existe, usando esta consulta de un cliente desde el que podemos conectarnos:
SELECT user, host FROM mysql.user
Estamos buscando una fila que tenga "test2" para usuario y "localhost" para host .
user host
------- -----------
test2 127.0.0.1 cleanup
test2 ::1
test2 localhost
Si esa fila no existe, entonces el host puede configurarse con un valor comodín de %
, para que coincida con cualquier otro host que no coincida.
Si la fila existe, es posible que la contraseña no coincida. Podemos cambiar la contraseña (si estamos conectados como un usuario con privilegios suficientes, por ejemplo, root
SET PASSWORD FOR 'test2'@'localhost' = PASSWORD('mysecretcleartextpassword')
También podemos verificar que el usuario tiene privilegios sobre los objetos en la base de datos.
GRANT SELECT ON jobs.* TO 'test2'@'localhost'
EDITAR
Si hacemos cambios en las tablas de privilegios de mysql con operaciones DML (INSERTAR, ACTUALIZAR, ELIMINAR), esos cambios no tendrán efecto hasta que MySQL vuelva a leer las tablas. Podemos hacer que los cambios sean efectivos forzando una nueva lectura con un FLUSH PRIVILEGES
instrucción, ejecutada por un usuario privilegiado.