Si nunca ha establecido una contraseña para el usuario root de MySQL,
el servidor no requiere ninguna contraseña para conectar como root. De
todas formas, se recomienda establecer una contraseña para cada cuenta. Consulte
Sección 5.5.1, “Guía de seguridad general”.
Si usted había establecido previamente una contraseña para el usuario root, pero ha olvidado cual era, puede establecer una nueva contraseña.
El siguiente procedimiento es para sistemas Windows. El procedimiento para sistemas Unix está descrito más adelante en esta sección.
El proceso bajo Windows: The procedure under Windows:
Entre en su sistema como Administrador.
Pare el servidor MySQL si se está ejecutando. Para servidores que se estén ejecutando como servicio de Windows, vaya al Gestor de Servicios:
Menú Inicio -> Panel de Control -> Herramientas administrativas -> Servicios
Después encuentre en la lista el servicio MySQL, y parelo.
Si su servidor no está ejecutándose como servicio, podría necesitar utilizar el Gestor de tareas para forzarlo a parar.
Cree un archivo de texto e introduzca el siguiente comando en él, en una única línea:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MiNuevaContraseña');
Guarde el archivo con cualquier nombre. Para este ejemplo, el nombre del archivo será
C:\mysql-init.txt.
Abra una ventana de comandos para obtener una consola de comandos DOS:
Menú Inicio -> Ejecutar -> cmd
Asumiremos que usted tiene instalado MySQL en C:\mysql.
Si lo intaló en algún otro lugar, ajuste los siguientes comandos de manera adecuada.
En la línea de comandos DOS, ejecute esta orden:
C:\> C:\mysql\bin\mysqld-nt --init-file=C:\mysql-init.txt
Los contenidos del archivo nombrado por la opción --init-file
son ejecutados en el inicio del servidor, cambiando la contraseña de
root. Cuando el servidor se haya iniciado correctamente, debería
borrar el archivo C:\mysql-init.txt.
Los usuarios de MySQL 4.1 y superiores que instalen MySQL utilizando el instalador
de mySQL, pueden necesitar especificar una opción --defaults-file:
C:\> C:\Archivos de Programa\MySQL\MySQL Server 5.0\bin\mysqld-nt.exe
--defaults-file="C:\Archivos de Programa\MySQL\MySQL Server 5.0\my.ini"
--init-file=C:\mysql-init.txt
La configuración apropiada de --defaults-file puede encontrarse
utilizando el Gestor de Servicios:
Menú Inicio -> Panel de Control -> Herramientas Administrativas -> Servicios
Encuentre el servicio MySQL en la lista, pulse con el botón derecho del ratón, y
escoja la opción Propiedades. El campo
Ruta al Ejecutable contiene la configuración de --defaults-file.
Pare el servidor MySQL, y reinícielo en modo normal de nuevo. Si ejecuta el servidor como servicio, inícielo desde la ventana de servicios de Windows. Si ejecuta el servidor manualmente, utilice el comando que normalmente use.
Debería poder conectar utilizando la nueva contraseña.
En un entorno Unix, el procedimiento para restablecer la contraseña
root es el siguiente:
Entre en sus sitema como usuario Unix root o bien como el mismo
usuario que ejecuta el servidor mysqld.
Localice el archivo .pid que contiene el ID de proceso del
servidor. La localización exacta y el nombre de este archivo depende de su distribución,
nombre de máquina, y configuración. Lugares comunes son /var/lib/mysql/,
/var/run/mysqld/, y
/usr/local/mysql/data/.
Generalmente, el archivo tiene una extensión .pid y comienza
con mysqld o el nombre de su máquina.
Puede parar el servidor MySQL enviando un comando kill (no kill -9) a el proceso mysqld utilizando
la ruta del archivo .pid en el siguiente comando:
shell> kill `cat /mysql-data-directory/host_name.pid`
Nótese el uso de acentos abiertos en vez de comillas simples con el comando cat; estos causan que la salida de cat sea
sustituida en el comando kill.
Cree un archivo de texto e introduzca el siguiente comando en una única línea:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MiNuevaContraseña');
Guarde el archivo con cualquier nombre. Para este ejemplo, el archivo tendrá el nombre
~/mysql-init.
Reinicie el servidor MySQL con la opción especial
--init-file=~/mysql-init:
shell> mysqld_safe --init-file=~/mysql-init &
Los contenidos del archivo son ejecutados al inicio del servidor, cambiando la
contraseña de root. Después de que el servidor se haya iniciado con éxito, debería
borrar ~/mysql-init.
Debería poder conectar utilizando la nueva contraseña.
Una alternativa, en cualquier plataforma, es establecer la nueva contraseña desde el cliente mysql (pero esta manera es menos segura):
Pare mysqld y reinícielo con la opción
--skip-grant-tables --user=root (Los usuarios de Windows deben
omitir la parte de --user=root).
Conecte al servidor mysqld con este comando:
shell> mysql -u root
Ejecute las siguientes sentencias en el cliente mysql:
mysql> UPDATE mysql.user SET Password=PASSWORD('nuevacontraseña')
-> WHERE User='root';
mysql> FLUSH PRIVILEGES;
Reemplace “nuevacontraseña”
con la contraseña de root real que quiere utilizar.
Debería poder conectar utilizando la nueva contraseña.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.
