Volver a la página principal
lunes 15 julio 2024
429

Cómo solucionar el error "MySQL ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)"

Causas comunes del error

1. Contraseña incorrecta: La contraseña proporcionada es incorrecta.

2. Usuario 'root' sin privilegios adecuados: El usuario 'root' no tiene los privilegios adecuados para acceder desde 'localhost'.

3. Configuración de MySQL: La configuración de MySQL puede estar bloqueando el acceso.

4. Problemas con el archivo de configuración: El archivo de configuración de MySQL (my.cnf o my.ini) puede estar incorrectamente configurado.

5. Problemas con el plugin de autenticación: El plugin de autenticación puede estar causando problemas.

Soluciones

1. Verificar la contraseña

Asegúrate de que la contraseña que estás utilizando es correcta.

mysql -u root -p
# Luego, ingresa la contraseña cuando se te solicite

2. Restablecer la contraseña de root

Si has olvidado la contraseña de root o no estás seguro de ella, puedes restablecerla siguiendo estos pasos:

1. Detén el servicio de MySQL:

sudo service mysql stop

2. Inicia MySQL en modo seguro:

sudo mysqld_safe --skip-grant-tables &

3. Conéctate a MySQL sin contraseña:

mysql -u root

4. Cambia la contraseña de root:

FLUSH PRIVILEGES;
   ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

5. Detén el modo seguro y reinicia MySQL:

sudo service mysql stop
   sudo service mysql start

3. Verificar los privilegios del usuario 'root'

Asegúrate de que el usuario 'root' tiene los privilegios adecuados para acceder desde 'localhost'.

SELECT host, user FROM mysql.user WHERE user = 'root';

Si el usuario 'root' no tiene permiso para acceder desde 'localhost', puedes agregarlo:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
FLUSH PRIVILEGES;

4. Verificar y corregir la configuración de MySQL

Revisa el archivo de configuración de MySQL (my.cnf o my.ini) para asegurarte de que no hay configuraciones que estén bloqueando el acceso.

sudo nano /etc/mysql/my.cnf

Asegúrate de que no haya restricciones en las secciones [mysqld] o [client].

5. Verificar el plugin de autenticación

A veces, el plugin de autenticación puede causar problemas. Verifica el plugin utilizado por el usuario 'root':

SELECT user, host, plugin FROM mysql.user WHERE user = 'root';

Si el plugin es auth_socket, puedes cambiarlo a mysql_native_password:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
FLUSH PRIVILEGES;

6. Reiniciar el servicio de MySQL

Asegúrate de reiniciar el servicio de MySQL después de realizar cambios en la configuración o en los privilegios.

sudo service mysql restart
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer