Este error generalmente ocurre cuando intentas acceder a MySQL como usuario root desde localhost sin proporcionar una contraseña. Aquí hay algunas posibles soluciones para solucionar este problema:
1. Verificar la contraseña: Asegúrate de haber establecido una contraseña para el usuario root. En algunos casos, la instalación predeterminada de MySQL no tiene una contraseña para el usuario root. Puedes intentar acceder usando la opción `--user=root --password` y presionando enter cuando te solicite la contraseña. Si esto funciona, significa que no tienes una contraseña establecida y puedes proceder a establecer una nueva.
2. Restablecer la contraseña: Si olvidaste la contraseña del usuario root o necesitas restablecerla, puedes seguir estos pasos:
- Detén el servicio de MySQL: `sudo systemctl stop mysql`
- Reinicia MySQL en modo seguro: `sudo mysqld_safe --skip-grant-tables &`
- Conéctate a MySQL: `mysql -u root`
- Actualiza la contraseña para el usuario root: `FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY 'tu_nueva_contraseña';`
- Sal de MySQL: `exit`
- Reinicia el servicio de MySQL: `sudo systemctl start mysql`
3. Configuración incorrecta del archivo de configuración: Verifica que el archivo de configuración de MySQL (`/etc/mysql/my.cnf` o `/etc/my.cnf`) contenga la configuración correcta para el usuario root. Debe haber una línea como `user=root` para asegurarte de que estás usando el usuario root y no un usuario diferente.
4. Otros usuarios con permisos de root: Es posible que haya otros usuarios con permisos de root en tu sistema. Puedes intentar acceder a MySQL utilizando esas credenciales para asegurarte de que aún tienes acceso como root.
Espero que alguna de estas soluciones te ayude a resolver el error 1045 de "Access denied for user 'root'@'localhost' (using password: NO)".