Saltar al contenido

Error de MySQL n. ° 1133: no se puede encontrar ninguna fila coincidente en la tabla de usuarios

Solución:

Encontré este error al usar MySQL en un contexto diferente (no dentro de phpMyAdmin). Los comandos GRANT y SET PASSWORD fallaron en un usuario existente en particular, que estaba listado en la tabla mysql.user. En mi caso, se solucionó ejecutando

FLUSH PRIVILEGES;

La documentación de este comando dice

Vuelve a cargar los privilegios de las tablas de concesión en la base de datos mysql.

El servidor almacena información en la memoria caché como resultado de las declaraciones GRANT y CREATE USER. Esta memoria no es liberada por las correspondientes declaraciones REVOKE y DROP USER, por lo que para un servidor que ejecuta muchas instancias de las declaraciones que causan el almacenamiento en caché, habrá un aumento en el uso de la memoria. Esta memoria caché se puede liberar con FLUSH PRIVILEGES.

Aparentemente, la caché de la tabla de usuario había alcanzado un estado inconsistente, lo que provocó este extraño mensaje de error. Más información está disponible aquí.

Este error puede ocurrir si intenta otorgar privilegios a un usuario no existente.

No me queda claro qué considera MySQL un usuario inexistente. Pero sospecho que MySQL considera que existe un usuario si se puede encontrar por un nombre (columna User) y un anfitrión (columna Host) en el user mesa.

Si intenta otorgar privilegios a un usuario que se puede encontrar con su nombre (columna User) pero no por su nombre y anfitrión (columnas User y Host) y no proporciona una contraseña, se produce el error.

Por ejemplo, la siguiente declaración desencadena el error:

grant all privileges on mydb.* to [email protected]'xxx.xxx.xxx.xxx';

Esto se debe a que, sin que se especifique una contraseña, MySQL no puede crear un nuevo usuario y, por lo tanto, intenta encontrar un usuario existente. Pero ningún usuario con el nombre myuser y el anfitrión xxx.xxx.xxx.xxx se puede encontrar en el user mesa.

Mientras que proporcionar una contraseña, permite que la declaración se ejecute correctamente:

grant all privileges on mydb.* to [email protected]'xxx.xxx.xxx.xxx' identified by 'mypassword';

Asegúrese de reutilizar la misma contraseña de ese usuario que considera que existe, si ese nuevo “usuario de MySQL” es el mismo “usuario de la aplicación”.

Complete la operación vaciando los privilegios:

flush privileges;

Encontré este problema, pero en mi caso, la contraseña del usuario ‘phpmyadmin’ no coincidía con el contenido de /etc/phpmyadmin/config-db.php

Una vez que actualicé la contraseña para el usuario ‘phpmyadmin’, el error desapareció.

Estos son los pasos que tomé:

  1. Inicie sesión en mysql como root: mysql -uroot -pYOUR_ROOT_PASS
  2. Cambie a la base de datos ‘mysql’: use mysql;
  3. Actualice la contraseña del usuario ‘phpmyadmin’:
    UPDATE mysql.user SET Password=PASSWORD('YOUR_PASS_HERE') WHERE User="phpmyadmin" AND Host="localhost";
  4. Privilegios de descarga: FLUSH PRIVILEGES;

¡¡HECHO!! Funcionó para mí.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *