Tabla de contenido
1. Errores anormales
PS C:\Users\10568> mysql -u root -p
Enter password: ****
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Acceso denegado significa denegación de acceso, utilizando contraseña: NO/SI si se ha ingresado una contraseña.
Dos, la razón
Una de las razones es el error de inicio automático de mysql. El número de puerto 3306 de mysql está ocupado por sí mismo. Debe cerrar el servicio de mysql y reiniciarlo. Puedo resolverlo haciendo esto. Por supuesto, también puede deberse a el usuario que no existe en el servidor MySQL intenta acceder a la base de datos. Puede consultar la pregunta de desbordamiento de pila para resolverlo.
La respuesta al desbordamiento de la pila es que, de forma predeterminada, el usuario raíz de MySQL está configurado para autenticarse mediante el complemento auth_socket en lugar de utilizar una contraseña. En muchos casos, esto permite una mayor seguridad y usabilidad, pero también complica las cosas cuando necesita permitir que programas externos (por ejemplo, phpMyAdmin) accedan a los usuarios. Para conectarse a MySQL como root usando una contraseña, debe cambiar su método de autenticación de auth_socket a mysql_native_password.
Referencia: Acceso denegado para el usuario 'root'@'localhost' (con contraseña: SÍ) - ¿Sin privilegios?: https://stackoverflow.com/questions/17975120/access-denied-for-user-rootlocalhost-using-password- sí-no-privilegios
3. Soluciones
Verifique el puerto 3306 y encuentre que el proceso PID es 5296
netstat -ano|findstr 3306
Use el comando taskkill /PID 5964 -t -f
para finalizar el proceso o finalice la tarea directamente en el administrador de tareas
reiniciar mysql después
net start mysql
Simplemente vuelva a ingresar mysql
Si es un sistema Ubuntu, puede consultar las siguientes respuestas:
Error de MySQL: 'Acceso denegado para el usuario 'root'@'localhost': https://stackoverflow.com/questions/41645309/mysql-error-access-denied-for-user-rootlocalhost
En sistemas Ubuntu que ejecutan MySQL 5.7 (y versiones posteriores), el usuario raíz
de MySQL está configurado para autenticarse mediante el complemento auth_socket de forma
predeterminada en lugar de una contraseña. Esto permite mayor
seguridad y facilidad de uso en muchos casos, pero también puede complicar
las cosas cuando necesita permitir que un programa externo (por ejemplo, phpMyAdmin)
acceda al usuario.Para usar una contraseña para conectarse a MySQL como root, deberá
cambiar su método de autenticación de auth_socket a
mysql_native_password. Para hacer esto, abra el indicador de MySQL desde su
terminal:sudo mysql
A continuación, compruebe qué método de autenticación
utiliza cada una de sus cuentas de usuario de MySQL con el siguiente comando:SELECCIONE usuario,authentication_string,plugin,host FROM mysql.user;
Producción
±-----------------±------------------------------- -----------±----------------------±----------+ | usuario | cadena_autenticación |
complemento | anfitrión |
±-----------------±------------------------------- -----------±----------------------±----------+ | raíz | |
enchufe_autenticación | servidor local | | mysql.sesión |
*ESTA NO ES UNA CONTRASEÑA VÁLIDA QUE SE PUEDE UTILIZAR AQUÍ | mysql_native_password | servidor local | | mysql.sys |
*ESTA NO ES UNA CONTRASEÑA VÁLIDA QUE SE PUEDE UTILIZAR AQUÍ | mysql_native_password | servidor local | | debian-sys-mantenimiento |
*CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | servidor local |
±-----------------±------------------------------- -----------±----------------------±----------+ 4 filas en conjunto (0.00 seg) En este ejemplo, puede ver que la raíz
el usuario, de hecho, se autentica usando el complemento auth_socket. Para
configurar la cuenta raíz para autenticarse con una contraseña, ejecute el
siguiente comando ALTER USER. Asegúrese de cambiar la contraseña a una
contraseña segura de su elección y tenga en cuenta que este comando cambiará la
contraseña raíz que estableció en el Paso 2:ALTERAR USUARIO 'root'@'localhost' IDENTIFICADO CON mysql_native_password POR
'contraseña';Luego, ejecute FLUSH PRIVILEGES, que le dice al servidor que vuelva a cargar las
tablas de concesión y ponga en vigencia sus nuevos cambios:PRIVILEGIOS DE DESCARGA;
Vuelva a verificar los métodos de autenticación empleados por cada uno de sus usuarios
para confirmar que la raíz ya no se autentica con el
complemento auth_socket:SELECCIONE usuario,authentication_string,plugin,host FROM mysql.user;
Producción
±-----------------±------------------------------- -----------±----------------------±----------+ | usuario | cadena_autenticación |
complemento | anfitrión |
±-----------------±------------------------------- -----------±----------------------±----------+ | raíz | *3636DACC8616D997782ADD0839F92C1571D6D78F |
mysql_native_password | servidor local | | mysql.sesión |
*ESTA NO ES UNA CONTRASEÑA VÁLIDA QUE SE PUEDE UTILIZAR AQUÍ | mysql_native_password | servidor local | | mysql.sys |
*ESTA NO ES UNA CONTRASEÑA VÁLIDA QUE SE PUEDE UTILIZAR AQUÍ | mysql_native_password | servidor local | | debian-sys-mantenimiento |
*CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | servidor local |
±-----------------±------------------------------- -----------±----------------------±----------+ 4 filas en conjunto (0.00 seg) Puede ver en este resultado de ejemplo que el
usuario raíz de MySQL ahora se autentica usando una contraseña. Una vez que confirme
esto en su propio servidor, puede salir del shell de MySQL:salida