Cómo cambiar la clave de Root en los sistemas gestores de base de datos MariaDB y MySQL. Pasos y comandos para el sistema operativo MacOS.
En Internet encuentras una buena cantidad de artículos y respuesta a preguntas que explican cómo cambiar la clave de root en MySQL o MariaDB. Están todos bastante encaminados pero por unas cosas o por otras no me funcionaron a mi. Por eso, aunque sea un poco repetitivo, voy a escribir este artículo para dar mis notas sobre este proceso, que he realizado en un sistema un MacOS.
Primero decir que el ordenador con MacOS para el que he tenido que recuperar la clave de root es un poco antiguo, de procesador Intel y con un sistema "Catalina" que no actualizo porque el ordenador no da para más. Igual en versiones más modernas de MacOS alguna cosa cambia, sobre todo en las rutas donde puedan estar instalados los ejecutables, pero eso lo voy a comentar también llegado el momento, dando alternativas.
Cambiar la clave de root ¿en MySQL o MariaDB?
Podrías cambiar la clave de root principalmente porque la puedes haber perdido. Nos pasa a cualquiera ;) Ahora bien, ¿Qué cambios tiene el proceso de MySQL a MariaDB? La verdad es que poca cosa, simplemente usarás comandos distintos para arrancar y parar MySQL o MariaDB en el sistema, pero los ejecutables son los mismos.
Este proceso lo he probado con MariaDB, por lo que no estoy seguro que funcione con MySQL, pero ambos sistemas son prácticamente idénticos a la hora de trabajar con ellos por lo que no debería darte mucho problema cambiar los comandos para adaptar, pues el procedimiento en el fondo es el mismo.
Desinstalar MariaDB
En mi caso tuve que desinstalar MariaDB porque no conseguía hacerlo de otra manera. Pero puedes probar a pasar directamente al punto "Arrancar MariaDB de manera segura" si quieres preservar tu instalación.
En principio las bases de datos que tengas almacenadas en este SGBD no se borrarán a no ser que lo hagas manualmente. Si fuera necesario luego también te explicamos cómo.
Con este comando detenemos MariaDB en el sistema MacOS:
brew services stop mariadb
Si se trata de MySQL el comando cambia a:
brew services stop mysql
Luego hacemos una limpieza de los servicios mantenidos con Homebrew:
brew services cleanup
Si lo deseas, puedes correr este comando para asegurarte que todos los procesos estén terminados:
sudo pkill -KILL -f mysql mariadb
Por último, desinstalamos MariaDB con este comando:
brew remove mariadb
Hacer limpieza de los archivos que pueden no haberse borrado
En principio no necesitas borrar nada más para poder reinstalar MySQL o MariaDB. Sin embargo, la instalación puede haber dejado algunos archivos sueltos con configuraciones y bases de datos que podrías necesitar eliminar. Yo no lo he necesitado, pero si fuera necesario para ti, voy a apuntar un procedimiento.
Puedes buscar archivos como my.cf
o la carpeta var/mysql
que contiene todas las bases de datos existentes. Pero la localización de estas rutas puede cambiar de un equipo a otro. Aquí empieza un juego de archivos y carpetas que pueden diferir.
Primero: He leído que tendrías que borrar el archivo /opt/homebrew/etc/my.cf
pero a mi ese archivo no me aparece. Puedes buscarlo con el comando
find / -name my.cf
Si lo encuentras lo puedes borrar.
Luego está el directorio donde se guardan las bases de datos, que es una carpeta llamada mysql
. En mi caso está en la ruta /usr/local/var/mysql
pero en otros sistemas la puedes encontrar en la ruta /opt/homebrew/var/mysql
.
Puedes localizarla con:
find / -name var/mysql
Si quieres dejar el sistema limpio puedes borrar esa carpeta, pero eliminarás también los datos de tus bases de datos.
Instalar de nuevo MySQL o MariaDB
Ahora lanzamos el comando de instalación de la base de datos.
brew install mariadb
Si quieres instalar MySQL sería el comando:
brew install mysql
Arrancar MariaDB de manera segura
Ahora viene el paso que es necesario para que puedas cambiar la clave de root de tu base de datos. Consiste en lanzar un comando que te permitirá arrancar MySQL MariaDB de manera segura.
sudo /usr/local/bin/mysqld_safe --datadir=/usr/local/var/mysql
Esta ruta puede que no sea la misma en tu caso. Puedes probar con el comando:
sudo /opt/homebrew/opt/mariadb/bin/mysqld_safe --datadir=/opt/homebrew/var/mysql
Prueba a quitar "sudo
" si no te funciona, o prueba a buscar el archivo "``mysqld_safe"``` con el comando:
find / -name mysqld_safe
Con los resultados de esta búsqueda puedes personalizar el comando para colocar las rutas adecuadas para ti.
Ese comando dejará detenido el terminal mientras se está ejecutando. Para continuar puedes abrir otro terminal.
Luego podemos arrancar el sistema gestor de base de datos:
brew services start mariadb
O bien:
brew services start mysql
Cambiar la clave de root
Ahora solamente nos queda cambiar la clave de root.
En teoría puedes lanzar el comando siguiente para acceder al sistema gestor de base de datos:
sudo mysql -h localhost -u root -p
Te pedirá la clave de tu usuario de Mac (por haber usado sudo) y luego la clave de MySQL, que podrías dejar en blanco. Entonces puedes hacer los cambios de clave con los comandos de MySQL que sean necesarios, sin embargo yo he preferido hacerlo de otra manera.
Para cambiar la clave de root sin complicarnos con sentencias SQL de gestión de usuarios lanzamos el comando siguiente:
sudo mysql_secure_installation
Ese comando arrancará el proceso para hacer más segura tu instalación de MySQL o MariaDB. Se trata de un asistente que te irá preguntando varias cosas.
Primero te pedirá la clave de root de tu base de datos, como no la conoces, simplemente pulsas "enter".
Entre las preguntas, al principio te preguntará si quieres cambiar la clave de root. Te dirá que puedes pasar de ese paso porque ya tienes protegido el sistema, lo que quiere decir que ya tienes una clave de root actualmente. Sin embargo, es justamente este paso el que nos interesa realizar, porque la queremos cambiar.
Este es el mensaje que te aparecer explicando esta situación:
Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'.
Como opción predeterminada nos sugiere "no", pero le vamos a decir que sí, para que nos de la opción de cambiar la contraseña. Entonces colocas la clave un par de veces y listo.
El resto de las preguntas le puedes ir dando todas las opciones predeterminadas.
Con esto ya habrás cambiado la clave de root y puedes probar a conectarte con la nueva clave con este comando:
mysql -h localhost -u root -p
Simplemente ya no hace falta "sudo" delante. Eso es todo! espero que el procedimiento te funcione y puedas recuperar tu instalación de MySQL o MariaDB. Si no es así, tendrás que googlear un poco más para encontrar otras alternativas que te funcionen. Suerte!
Miguel Angel Alvarez
Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...