Bienvenido a nuestro espacio, en este sitio encontrarás la solucíon a lo que estabas buscando.
Solución:
Encontré este error usando MySQL en un contexto diferente (no dentro de phpMyAdmin). Los comandos GRANT y SET PASSWORD fallaron en un usuario existente en particular, que figuraba en la tabla mysql.user. En mi caso, se solucionó ejecutando
FLUSH PRIVILEGES;
La documentación para este comando dice
Recarga los privilegios de las tablas de concesión en la base de datos mysql.
El servidor almacena información en memoria caché como resultado de las instrucciones GRANT y CREATE USER. Esta memoria no es liberada por las sentencias REVOKE y DROP USER correspondientes, por lo que para un servidor que ejecuta muchas instancias de las sentencias 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, el 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 que no existe.
No me queda claro lo que MySQL considera 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 se intenta otorgar privilegios a un usuario que se encuentra 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 especificar 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 con éxito:
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 descargando 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 del usuario ‘phpmyadmin’, el error desapareció.
Estos son los pasos que tomé:
- Inicie sesión en mysql como root:
mysql -uroot -pYOUR_ROOT_PASS
- Cambie a la base de datos ‘mysql’:
use mysql;
- Actualice la contraseña para el usuario ‘phpmyadmin’:
UPDATE mysql.user SET Password=PASSWORD('YOUR_PASS_HERE') WHERE User='phpmyadmin' AND Host='localhost';
- Privilegios de descarga:
FLUSH PRIVILEGES;
¡¡HECHO!! Funcionó para mí.
Calificaciones y reseñas
Eres capaz de añadir valor a nuestra información dando tu veteranía en las interpretaciones.