¡¡Pero por qué!! Si acabas de instalar MariaDB y no te deja acceder con el usuario root, tanto si lo haces desde consola como si es con php (o tu lenguaje de programación), no te desesperes, que tiene solución.
En este caso el problema se suele presentar solamente en Linux, y es más habitual que pase en Ubuntu (Debian). De todas formas, también he visto el mismo caso en otras distros, por lo que la solución te valdrá para cualquier Linux.
MariaDB no deja acceder con root después de configurar contraseña
Lo más gracioso del caso, es que este problema se dá cuando has instalado de cero la base de datos, la has configurado con mysql_secure_installation, y estás completamente seguro de que la contraseña root es correcta.
A estas alturas ya habrás probado historias como la de ejecutar mariadb con –skip-grant-tables o similares, pero ninguna parece funcionar. Al final la solución y el por qué no te funciona la contraseña root tiene solución, pero mucho más sencilla.
Por qué no vale la contraseña mariadb al ejecutar mysql -u root
Bien, este es un fallo derivado del que vamos a solucionar, pero que seguramente también te interesará saber para no estar perdiendo el tiempo con esto.
Si has instalaod MariaDB y configurado la contraseña, luego lo normal es probarlo con este comando:
mysql -u root -p
En este momento introduces la contraseña (que sabes que está bién), pero… Horror! me dice que no es correcta y la he cambiado, reinstalado o incluso reinstalado Linux! Tranquilo.
Prueba a ejecutar este comando:
sudo mysql -u root
¿En este caso puedes acceder verdad? Entonces vamos a solucionarlo a lo fácil.
Cómo devolver acceso completo a root en MariaDB
Como ya te decía, no se trata de ejecutar de formas raras el servidor mysql ni nada raro. Esto se produce porque el usuario root de mariadb no se ha asociado correctamente a algún plugin que está entrando en conflicto con el acceso a base de datos.
Para solucionarlo ejecuta como hemos hecho antes mysql desde la consola de comandos pero con permisos root:
sudo mysql -u root
Verás que entra directamente, si te pide contraseña o te dice que no la has puesto pon -p al final y cualquier cosa cuando te pida contraseña y verás que te da acceso.
Una vez dentro lo que harás será cambiar a la base de datos mysql, para actualizar el usuario root y eliminar cualquier plugin que tenga asignado.
mysql> use mysql; update user set plugin='' where User='root'; flush privileges; \q
Que no se te olvide el punto y coma detrás de cada comando para que se ejecute. Una vez hecho esto puedes reiniciar por si acaso el servidor de mariadb con:
sudo service mysql restart
Y si pruebas ahora a acceder desde tus scripts o desde el terminal sin sudo a mysql verás que ya funciona la contraseña con el usuario root.
Si no te va o te da algún otro problema dime algo en los comentarios y te echo una mano.
¿No has podido acceder nada mas instalar MariaDB? ¿En qué versión de Linux? Comenta y comparte
Ver comentarios (8)
Yo estoy instalando mysql en raspbian, ya probe varias veces desisntalar todo y reistalar y el problema es que cuando instalo no me sale la pantalla azul para setear el password de root nunca, instala dice que todo esta bien y listo y no se cual es la clave. Garcias.
Después de la instalación ejecuta este comando
mysql_secure_installation
Cuando te pregunta por la contraseña actual dale a enter
Ahi me funciono para linux raspbian con las indicaciones del articulo. Muchas Gracias.
te amo! jajaja
Esto se podría presentar en windows también?
De hecho yo soy de los programadores raros, y está basado en la experiencia con el WSL, pero también lo he probado en varias máquinas con linux nativo con el mismo resultado. De todas formas, cómo estás instalando MariaDB en Windows?
Hola.
Me has servido de gran ayuda para instalar mariadb-server en raspbian.
Gracias.
Tengo algún artículo más al respecto y si tienes problemas pregunta que todos los días estoy solucionando cosillas con estas bases de datos.