Puede que esté un poco confundido cuando se le pida que restablezca la contraseña de root para su instalación de MySQL. Si vienes del mundo Windows, puede que no estés familiarizado con el término «root» en absoluto. Para los usuarios de Unix en macOS y Linux que están al tanto, puede que le preocupe que esto signifique cambiar su contraseña de superusuario. El primer paso es entender qué es, precisamente, esta contraseña de MySQL.
Índice de contenidos
¿Cuál es la contraseña raíz de MySQL?
Para responder a esto, primero definamos cuál es la contraseña de root del sistema. La cuenta root es el equivalente a un Administrador en Windows, o alguien que puede cambiar cualquier parte del sistema. En sistemas tipo Unix, root puede hacer cualquier cosa, pero es diferente en el sentido de que se crea automáticamente cuando el sistema está instalado, y normalmente no puede ser eliminado. Compare esto con Windows, donde cualquier usuario puede ser considerado un Administrador.
Tanto en macOS como en muchas distribuciones de Linux, este usuario está desactivado de forma predeterminada. En su lugar, normalmente usarás los comandos su/sudo. Éstos ejecutan el comando como si fuera un superusuario. Es lo mismo que usar Ejecutar como administrador para ejecutar aplicaciones de Windows.
Ahora, considere que MySQL es un subsistema multiusuario. Usted lo instala en su computadora o servidor y le asigna sus propios usuarios, luego asigna a esos usuarios sus propios permisos. Estos pueden ser completamente diferentes de los usuarios en el sistema en general, especialmente en sistemas *nix como Linux. Así como el sistema en general tiene un usuario root, el subsistema MySQL necesita un superusuario que pueda arreglarlo cuando las cosas van mal. Este es el usuario root de MySQL. Y a veces puede ser necesario cambiar la contraseña de este usuario.
¿Cuándo se crea la contraseña del usuario raíz de MySQL?
Al igual que el usuario root del sistema, el usuario root de MySQL es una cuenta por defecto, y se crea cuando se instala MySQL. Usted creará la contraseña inicial para el usuario root de MySQL en este momento. Cuando instale el paquete del servidor MySQL, el instalador le pedirá una contraseña y luego la configurará para el usuario root.
Creación de un archivo Init para restablecer la contraseña de MySQL
Cambiar la contraseña de un usuario root en sistemas tipo Unix es generalmente una tarea seria. No puedes hacerlo fácil, o cualquiera podría hacerlo y tomar el control de tu sistema. Las herramientas normales de restablecimiento de contraseñas funcionarán bien si tiene la contraseña actual, pero supongamos que no lo tiene y que necesita restablecer la contraseña a algo nuevo.
El truco que usaremos para restablecer la contraseña es usar un archivo de inicio cuando iniciemos el servidor MySQL. Este es un archivo que puede contener comandos que se ejecutan junto con las configuraciones normales. En este caso, uno de esos comandos va a cambiar la contraseña para el usuario root.
Independientemente de si su sistema operativo, puede prepararse para esto creando un archivo de texto de una línea que contenga lo siguiente:
Pre data-type=»code»>ALTER USUARIO @’root’@’localhost’ IDENTIFICADO POR <'thenewpassword';
Puedes ver este comando y entender lo que hace muy fácilmente. Es alterar un usuario llamado «root» en «localhost», o la máquina en la que estás trabajando. La segunda mitad establece la contraseña para este usuario en «thenewpassword».
Al iniciar el servidor MySQL y alimentarlo con este archivo init, ejecutará los comandos del interior, y el efecto será la actualización de la contraseña del usuario root a medida que se inicie el servidor.
Restablecer la contraseña de MySQL iniciando MySQL con el archivo Init
La secuencia básica que haremos es detener el servidor si se está ejecutando, iniciarlo de nuevo manualmente usando el archivo init, detenerlo de nuevo, y finalmente reiniciarlo de la manera normal. Los pasos específicos son los siguientes:
-
Detenga MySQL si se está ejecutando:
- En Windows, desde el menú Inicio, abra el Panel de control , y ejecute Herramientas administrativas . Esto está en la categoría Sistema y Seguridad si es así como tiene organizado el Panel de Control. Seleccione Servicios (aprenda acerca de Windows Services aquí), luego busque MySQL en la lista. Si se muestra como ejecutándose, seleccione Detener el servicio para apagarlo.
- En macOS, vaya a Preferencias del Sistema> MySQL . El Panel de Preferencias aparecerá y le mostrará si el servidor se está ejecutando, así como le dará la opción de detenerlo.
- En Linux, puede emitir » sudo service mysqld stop » para apagar el servidor.
-
A continuación, inicie el servidor de nuevo y señale el archivo de inicio que ha creado. El comando es:
mysqld --init-file=/path/to/my/init/file
Si está ejecutando Windows, asegúrese de ejecutar el comando anterior desde el directorio del ejecutable, normalmente C:ProgramDataMySQLMySQLMySQL Server 8.0bin . Además, si usó el paquete MySQL Windows Installer (.msi), también necesitará agregar el «archivo por defecto» para cargar todas las demás configuraciones que MySQL necesita: mysqld –defaults-file=»C:ProgramDataMySQLMySQL Server 8.0my.ini» –init-file=C:Usersers{aaron}Desktopame-of-the-file ).
-
Finalmente, reinicie el servidor MySQL:
- En Windows, vaya a la pantalla Servicios y seleccione Iniciar el servicio para MySQL.
- En macOS, inicie de nuevo la copia de seguridad del servidor desde la pantalla de Preferencias de MySQL.
- En Linux, ejecute sudo service start mysqld .
Aunque esto no es estrictamente necesario, es una buena idea asegurarse de que comienza con todas las configuraciones normales.
-
En este punto, intente iniciar sesión en el servidor con el cliente de línea de comandos utilizando la contraseña actualizada.