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.