sql >> Base de Datos >  >> RDS >> Mysql

Restablecer la contraseña raíz del servidor MySQL

De forma predeterminada, MySQL Server se instalará con superusuario raíz sin ninguna contraseña. Puede conectarse al servidor MySQL como root sin solicitar una contraseña o ingresando una contraseña en blanco. Sin embargo, si configuró la contraseña para root y la olvida o no puede recordarla, deberá restablecer la contraseña de root para MySQL.

El Manual de referencia de MySQL tiene pasos detallados sobre cómo restablecer la contraseña para root, que son los siguientes:

El procedimiento bajo Windows:

  1. Inicie sesión en el sistema Windows donde se ejecuta MySQL como administrador.
  2. Detenga el servidor MySQL si se está ejecutando. Para un servidor que se ejecuta como un servicio de Windows, vaya al Administrador de servicios:

    Menú Inicio -> Panel de control -> Herramientas administrativas -> Servicios

    Luego busque el servicio MySQL en la lista y deténgalo.

    Si su servidor no se está ejecutando como un servicio, es posible que deba usar el Administrador de tareas para obligarlo a detenerse.

  3. Cree un archivo de texto y coloque los siguientes comandos dentro de él, cada uno en una sola línea:
    UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
    FLUSH PRIVILEGES;
    
    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
    
    Save the file with any name. For this example the file will be C:\mysql-init.txt.
  4. Open a console window to get to the DOS command prompt: Start Menu -> Run -> cmd
  5. If MySQL is installed in C:\mysql. If MySQL is installed in another location, adjust the following commands accordingly. At the DOS command prompt, execute this command:
    C:\> C:\mysql\bin\mysqld-nt --init-file=C:\mysql-init.txt

    El contenido del archivo nombrado por la opción --init-file se ejecuta al iniciar el servidor, cambiando la contraseña de root. Una vez que el servidor se haya iniciado correctamente, debe eliminar C:\mysql-init.txt.

    Si instaló MySQL utilizando el Asistente de instalación de MySQL, es posible que deba especificar una opción de archivo predeterminado:

    C:\> "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt.exe"
             --defaults-file="C:\Program Files\MySQL\MySQL Server 5.0\my.ini"
             --init-file=C:\mysql-init.txt

    La configuración adecuada de --defaults-file se puede encontrar mediante el Administrador de servicios:

    Menú Inicio -> Panel de control -> Herramientas administrativas -> Servicios

    Busque el servicio MySQL en la lista, haga clic derecho sobre él y elija la opción Propiedades. El campo Ruta al ejecutable contiene la configuración --defaults-file. Asegúrese de proporcionar el argumento --init-file con la ruta completa del sistema al archivo, independientemente de su directorio de trabajo actual

  6. Detenga el servidor MySQL, luego reinícielo en modo normal nuevamente. Si el servidor MySQL se ejecuta como un servicio, inícielo desde la ventana Servicios de Windows. Si inicia el servidor manualmente, use cualquier comando que use normalmente.
  7. Conéctese al servidor MySQL usando la nueva contraseña. También recuerde eliminar el archivo mysql-init.txt cuando termine.

Para entornos Unix y Linux, el procedimiento para restablecer la contraseña de root es el siguiente:

  1. Inicie sesión en el sistema Unix como usuario raíz de Unix o como el mismo usuario con el que se ejecuta el servidor mysqld.
  2. Ubique el archivo .pid que contiene la identificación del proceso del servidor. La ubicación exacta y el nombre de este archivo dependen de su distribución, nombre de host y configuración. Las ubicaciones comunes son /var/lib/mysql/, /var/run/mysqld/ y /usr/local/mysql/data/. Generalmente, el nombre del archivo tiene la extensión .pid y comienza con mysqld o el nombre de host del sistema.

    Detenga el servidor MySQL enviando una terminación normal (no una terminación -9) al proceso mysqld, usando la ruta del archivo .pid en el siguiente comando:

    shell> kill `cat /mysql-data-directory/host_name.pid`

    Tenga en cuenta el uso de acentos graves en lugar de comillas con el comando cat; estos hacen que la salida de cat sea sustituida por el comando kill.

  3. Cree un archivo de texto y coloque el siguiente comando dentro de él en una sola línea:
    UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
    FLUSH PRIVILEGES;

    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');

    Guarde el archivo con cualquier nombre. Para este ejemplo, el archivo será ~/mysql-init.

  4. Reinicie el servidor MySQL con la opción especial --init-file=~/mysql-init:
    shell> mysqld_safe --init-file=~/mysql-init &

    El contenido del archivo de inicio se ejecuta al iniciar el servidor, cambiando la contraseña de root. Después de que el servidor se haya iniciado correctamente, debe eliminar ~/mysql-init.

  5. Reinicie el servidor normalmente. Conéctese al servidor MySQL utilizando la nueva contraseña.

Alternativamente, en cualquier plataforma, se puede usar el cliente mysql para establecer la nueva contraseña, aunque es una forma menos segura de restablecer la contraseña (instrucciones detalladas aquí):

  1. Detenga mysqld y reinícielo con las opciones --skip-grant-tables --user=root (los usuarios de Windows omiten la porción --user=root).
  2. Conéctese al servidor mysqld con este comando:
    shell> mysql -u root
  3. Emita las siguientes declaraciones en el cliente mysql:
    mysql> UPDATE mysql.user SET Password=PASSWORD('newpwd')
        ->                   WHERE User='root';
    mysql> FLUSH PRIVILEGES;

    Reemplace 'newpwd' con la contraseña raíz real que desea usar.

  4. Debería poder conectarse con la nueva contraseña.