error MySQL 1968(28000) Acceso denegado

Es un error muy común cuando intentas iniciar sesión en MySQL por primera vez. Que con unos sencillos pasos, puedes resolver. En algún momento, recuerdo que me sucedió, tal vez porque no seguí la forma correcta de instalar MySQL, olvidando establecer una contraseña o no obteniendo las opciones para establecerla. Pero también la causa del error pueden ser otras razones, aunque igual de fácil solución. Te mostrare dos formas de resolverlo a continuación.

Forma 1

Una de las formas más fáciles de resolver este error es invocando mysql_secure_installation, que le pedirá que establezca una contraseña para su usuario root de MySQL.

$ sudo mysql_secure_installation

Debe ingresar una nueva contraseña y volverla a escribir para confirmar. Si la contraseña tiene menos de 25 caracteres, se le pedirá que confirme si desea continuar o no.

Vale mencionar, que esto alguna vez devuelve mensaje de error, similar al siguiente.

Failed! Error: SET PASSWORD has no significance for user ‘root’@’localhost’ as the authentication method used doesn’t store authentication data in the MySQL server.

Please consider using ALTER USER instead if you want to change authentication parameters.”

Si es tu caso, cierra terminal y usa la siguiente.

Forma 2

Cuando instala MySQL por primera vez, existe la posibilidad de que no encuentre la opción para establecer una contraseña debido al nuevo método de autenticación de usuarios. Si es así, debes iniciar sesión en MySQL como usuario root. La mayoría de las veces, los usuarios pueden intentar iniciar sesión como mysql -u usuario o mysql -u root, pero no funcionará porque aún no se ha creado usuario@localhost en el sistema, y no se podrá acceder a la raíz sin privilegios sudo.

  • Consulta el Mecanismo de Autorización

Inicia sesión como sudo en la nueva instalación porque la cuenta que está vinculada con MySQL es la cuenta root, no la cuenta de usuario.

$ sudo mysql -u root

Una vez que haya iniciado sesión, encontrarás la consola de MySQL, ¡genial!…Pero esto te limitara a no poder usar MySQL sin privilegios sudo, así que no termina siendo realmente una solución optima. Para ello, puedes crear un nuevo usuario y otorgarle los privilegios necesarios, o bien cambiar el mecanismo de autenticación de contraseña de la cuenta root.

Puedes recurrir, a diferentes tipos de mecanismos de contraseña de forma predeterminada. Como auth_socket, para que la cuenta root, sea sólida. También mysql_native_password convencional o caching_sha2_password a partir de la versión 8. Puedes verificarlo con el siguiente comando

mysql> SELECT User, plugin from mysql.user ;
  • Establecer una contraseña a root

Ahora puedes configurar o actualizar la contraseña con el siguiente comando. Reemplaza [contraseña] con la contraseña que desees aplicar.

mysql> use mysql;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH 'caching_sha2_password' BY '[contraseña]';

Estoy usando «caching_sha2_password». Una vez que se hayan implementado los cambios, reinicia el servicio MySQL.

$ sudo systemctl reboot mysql.service

A continuación, escribe el siguiente código en la terminal e ingresa la contraseña configurada anteriormente.

$ mysql -u root -p

Finalmente

Con estos pasos seria suficiente para resolver el error 1698 (28000) Acceso denegado. Estoy seguro de que después de seguir los pasos anteriores podrás resolver el problema, hasta otro post lector. Buenas vibras.

Happy Hacking!


Fuentes

Secure Deployment Configure Authentication

Deja un comentario