Ir al contenido principal

Recuperar Contraseña Root MySql




Recuperar contraseña de root en MySQL
Imprimir E-Mail
martes, 18 de julio de 2006

Ya sea por un descuido propio o por causas ajenas a nuestra voluntad, puede ocurrir que la contraseña de root para acceder al entorno de MySQL ya no esté en nuestro poder. En este corto documento aprenderemos a restaurar dicha contraseña desde un entorno con linux para evitar la temida reinstalación y la posible pérdida de datos.


Entrando en modo seguro

La recuperación de la contraseña ha de ser llevada a cabo desde el mismo sistema en que está corriendo el demonio mysqld. Así, el primer paso a realizar será terminar con la ejecución de dicho demonio mediante el siguiente comando:

# /etc/init.d/mysqld stop
Parando MySQL:
[ OK ]

Y nos aseguraremos de que no queda ningún servicio relacionado con MySQL en ejecución:

# ps -x |grep mysql

Si quedara algo en ejecución, lo eliminaríamos mediante el comando kill y el número de PID.

Seguidamente volveremos a ejecutar el demonio, pero en modo seguro. Dependiendo del sistema utilizado, la dirección y el nombre del ejecutable podría variar, aunque habitualmente suele encontrase en la ruta /usr/bin/mysqld_safe o /usr/bin/safe_mysqld. Ejecutaremos por tanto dicho comando del modo siguiente:

# /usr/bin/mysqld_safe --skip-grant-tables --user=root &
[1] 1882
Starting mysqld daemon with databases from /var/lib/mysql


Restableciendo la contraseña

Una vez ejecutado el demonio en modo seguro, accederemos a la consola de comandos de MySQL:

# mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 116 to server version: 5.0.22-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

Y una vez dentro de la consola ejecutaremos el siguiente código, que se encargará de establecer una nueva contraseña:

mysql> UPDATE mysql.user SET Password=PASSWORD('contraseña')
-> WHERE User='root';
Query OK, 2 Rows affected (0.01 sec)
Rows matched: 2 Changed: 2 Warnings: 0

mysql> FLUSH PRIVILEGES;
Query OK, 0 Rows affected (0.01 sec)

Cambiaremos la palabra contraseña por la contraseña elegida.

Abandonaremos la consola mediante el comando quit y reiniciaremos el demonio de mysqld de la forma habitual, por ejemplo:

# /etc/init.d/mysqld restart
Parando MySQL: [ OK ]
Iniciando MySQL: [ OK ]

Y ya deberíamos poder entrar a la consola con la nueva contraseña.


Automatizando la tarea

Llegados a este punto, tal vez nos interese automatizar la tarea de cambio de contraseña de root por el motivo que sea. Para ello, podemos escribir un sencillo script en bash que nos automatizará la tarea de un modo muy simple. Veamos un ejemplo:

#!/bin/bash
#
# Recuperación de la contraseña de root
# para una base de datos en MySQL.
#

echo
echo "Recuperación de contraseña de root"
echo

#Solicitamos la nueva contraseña
read -p "Nueva contraseña: " PASS

# Parar el servidor
/etc/init.d/mysql stop
/usr/bin/killall mysqld > /dev/null

# Iniciar demonio en modo seguro
/usr/bin/mysqld_safe \
--skip-grant-tables >/dev/null 2>&1

sleep 1

# Ahora ejecutamos el código SQL
mysql -u root mysql -e "UPDATE user SET Password=PASSWORD('${PASS}') WHERE \
user='root'; \
FLUSH PRIVILEGES;"
if [[ $? -eq 0 ]]
then
echo " ** Contraseña de root actualizada"
else
echo " ** Contraseña de root no actualizada"
fi

# Reiniciamos el servidor
/usr/bin/killall mysqld > /dev/null
/etc/init.d/mysql start

echo "... Actualización correcta de contraseña ..."
echo
echo
exit 0


Tomado de http://www.liberaliatempus.com/articulos/mysql/recuperar-contrasena-de-root-en-mysql.html


Comentarios

Entradas populares de este blog

Configurar Shorewall en CENTOS y Debian

Tomado de  http://www.com-sl.org/staticpages/index.php?page=config-shorewall-2da-parte Como   configurar un Firewall con Shorewall en dos Interfaces de Red con políticas DROP en CentOS y Debian . Autor:  Henry D. Rosado T. Correo electrónico:  bleycklinx@gmail.com Otros Datos:   Clic Aqui En este tutorial indicare como se configura un Firewall con Shorewall con políticas DROP en dos interfaces de red para CentOS y para Debian. Shorewall Shorewall  (Shoreline Firewall) es una robusta y extensible  herramienta de alto nivel para la configuración de muros cortafuego .  Shorewall  solo necesita se le proporcionen algunos datos en algunos ficheros de texto simple y éste creará las reglas de cortafuegos correspondientes a través de  iptables .  Shorewall  puede permitir utilizar un sistema como muro cortafuegos dedicado, sistema de múltiples funciones como  puerta de enlace, dispositivo de encaminamiento y servidor . Shorewall no solo le permite configurar un firewall seguro,  poderoso y rob...

Problemas de ASP error 0115

Cuando saca este error  Páginas Active Server error 'ASP 0115' Error inesperado /iscampus/admon/upload/upload_dest.asp Error capturable (C0000005) en un objeto externo. La secuencia de comandos no puede continuar Fue solucionado de la siguiente manera: W2K3 tiene  tiene limitada a 200 K el tamaño de los ficheros que pueden subirse con ASP, y se debe modificar el archivo C:\WINDOWS\system32\inetsrv\metabase.xml elvalor asignado a la entrada spMaxRequestEntityAllowed por el necesario.  Puede ser 10 MB. Para poder modificar el archivo es necesario parar el servicio IIS y configurar en la administracion de IIS en equipo Local click derecho, propiedades  activamos el checkbox que dice "Habilitar la modificación directa de archivos Metabase". Tambien puede ser necesario hacer lo siguiente: What does this error mean: 'error "ASP 0115" Unexpected error - A trappable error occurred in an external object.' It typically means that you are not running the ...

Cambiar Idioma en Servidores Linux

Para aquellos que tengan problemas tiene una versión de linux instalada en el servidor en un idioma diferente al vuestro, y claro, no tiene entorno gráfico y se hace bastante complicado el cambiar de idioma, aqui va la solución: Realmente, la información del idioma a mostrar en pantalla va dentro de cada paquete del programa, si el autor lo ha incluido. Se mostrará en pantalla la que diga la variable de entorno LANG. Para ello, por ejemplo, en una primera instancia, si hacemos: export LANG=”es_ES.UTF-8″ ya la tendríamos funcionando, pero posiblemente muchos programas no cojan esa configuración directamente. Para ello lo podemos colocar en varios sitios para que carguen automáticamente. Si os fijais, hemos escodigo es_ES que es idioma Español de España y el juego de caracteres UTF-8. Para ello, podemos editar el fichero /etc/bashrc y agregar esa linea ahí. De ésta manera, ese comando se cargará al iniciar linux y estará disponible para todos los usuarios. Si quieres que cada usuario ten...