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

Instalacion Windows 2008 y SQL 2008

Aspectos a tener en cuenta con IIS7.5 Instalar ASP.NET ow to install ASP.NET 1.1 with IIS7 on Vista and Windows 2008 Posted: Jun 02, 2008 21 comments Average Rating Tags Administration Administrators ASP.NET Compatibility Developers IIS7 Email this Post DotNetKicks Digg Facebook Del.icio.us BillS IIS Blog Contact Me Lots of new software... IIS 7.5 Launched with... ASP.NET 4 and Visual... Overview ASP.NET 2.0 (3.0 and 3.5) are easy to install with Windows Vista and Windows 2008 - just install the ASP.NET component located under IIS->Word Wide Web Services->Application Development Features. You can find this set of components in Windows 2008 by clicking Start , and click Server Manager . Expand the left-hand treeview in Server Manager and click Manage Roles , and then Web Server (IIS) . In the right-hand pane look for an option that says Add Role Services . If you're on Windows Vista, click Start , click Control Panel , click Programs , and then Windows Features . L...

Instalación de Sistema Operativo Windows Desatendida

Cuando hay que realizar una instalación de un sistema operativo en Windows, se puede utilizar el software nlite, el cual puede lograr una instalación desatendida en la que se pueden integrar los controladores, poner el serial o elegir el fondo de entre otras muchas cosas que se pueden hacer. Para esto Microsoft ofrece una solución como lo es: el cual fue tomado del link http://support.microsoft.com/kb/254078/en-us How to add OEM Plug and Play drivers to Windows installations View products that this article applies to. Article ID : 254078 Last Review : March 1, 2007 Revision : 5.4 This article was previously published under Q254078 For a Microsoft Windows XP version of this article, see 314479 (http://support.microsoft.com/kb/314479/) . On This Page SUMMARY MORE INFORMATION For Microsoft Windows 2000 Unattended setup Sysprep setup RIS installations Riprep images Existing Windows installations For Windows Server 2003 Unattended setup Sysprep setup RIS installations Riprep images Exi...

RETO KIOPTRIX 2014

Nuestro buen amigo y sensei 4v4t4r decidió compartir nuevamente un reto de Kioptrix para verificar conocimientos sobre ataques a aplicaciones Web, esta fue una de las formas en que se resolvió el reto.