miércoles, 13 de junio de 2007

Recuperar password de MySQL

Si si ya se .. hace una bocha que no escribo .. pero bueno es que estoy medio perdido .. y dentro de ese laberinto estube buscando como cornos cambiar la password de mysql de una base que no me acordaba. Surfeando a full encontre esto en un blog por lo que lo voy a traducir al castellano (ah por cierto la fuente es http://felipecruz.com/changing-root-pass-on-mysql.php)

Cambiar la clave de root en mysql

Muchas distros de Linux tienen una opcion para instalar MySQL. En este caso, o aunque compilen MySQL la clave por defecto esta en blanco (NA: en ubuntu no). MySQL puede tambien correr en entornos windows. Cuando instalan MySQL, asegurense de establecer una clave para el usuario root. Una de las formas de hacer esto es:

root@u-1:/home/u-1# mysql -u root mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 1 to server version: 3.23.47

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

mysql> SET PASSWORD FOR root@localhost=PASSWORD('rubberchicken');
Query OK, 0 rows affected (0.06 sec)

mysql>

En el ejemplo anterior, establecimos la clave del usuario root a rubberchicken. Ahora al intentar ingresas sin el -p (para que solicite contraseña) se nos denegará el acceso:

root@u-1:/home/u-1# mysql -u root mysql
ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)


Por lo que deberemos ingresar suministrando la clave o solo agregando el -p para que sea de modo interactivo.

root@u-1:/home/u-1# mysql -u root -p mysql
Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 3 to server version: 3.23.47

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

mysql>

Para reiniciar una clave de root que fue olvidada (reemplazar los path por los de tu distro):

[root@host root]# killall mysqld
[root@host root]# /usr/libexec/mysqld -Sg --user=root &
Si lo anterior no funciona proba con lo siguiente:

mysqld --skip-grant-tables --user=root

Ahora volvemos a cargar el cliente mysql:

[root@host root]# mysql
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 1 to server version: 3.23.41

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

mysql> USE mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> UPDATE user
-> SET password=password("newpassword")
-> WHERE user="root";
Query OK, 2 rows affected (0.04 sec)
Rows matched: 2 Changed: 2 Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql> exit;
[root@host root]#killall mysqld

Reiniciar el servidor MySQL de forma normal:

/etc/init.d/mysqld start 

No hay comentarios.:

Ultimos comentarios