Por suerte, la solucion a este problema no es muy complicado. Solo necesitas reiniciar MySQL con una condicion que le dira que ignore cualquier restriccion de usuario/password que exista. Asi que a proceder:
Detener el motor
root
@marian
:~# /etc/init.d/mysql stop
Ahora, iniciaras de forma individual no ejecutando mysql desde los scripts de inicio, ejecutaras el comando mysqld_safe asi:
root
@marian
:~# /usr/bin/mysqld_safe --skip-grant-tables &
[
1
]
4271
Starting mysqld daemon with databases from /var/lib/mysql
mysqld_safe[
6763
]: started
Observa
bien la condicion marcada en negrita que se le ha pasado al motor. Una
vez cometido este hecho, basta con que te loguees y actualizes la
informacion de la password de root asi:
root
@marian
:~$ mysql --user=root mysql
Enter password:
mysql> update user set Password=PASSWORD(
'nueva password aqui'
) 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.02
sec)
mysql> exit
Bye
Una vez realizado lo anterior, te tocara detener el proceso mysqld_safe he iniciarlo de forma correcta:
root@marian# /etc/init.d/mysql start
Ahora,
esta condicion solamente funciona si el MySQL que tienes instalado vino
compilado (o lo compilaste tu como sea) con la opcion skip-grant-tables
habilitada. Por lo general viene habilitada, pero en caso que no, y aun
quieras recuperar la password de root otra forma de hacerlo es:
Utilizando
un archivo de inicio init para MySQL. Para crear este archivo de texto,
basta ejecutar cualquier editor y colocar dentro:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFY BY '****' WIth GRANT OPTION;
O
opcionalmente dentro del archivo que usaras de init puedes indicar un
UPDATE o sencillamente sino quieres, usar el query MySQL que aqui te
expuse, guardas los cambios.
Luego tienes que agregar una entrada al my.cnf principal:
init-file=/tmp/mi_archivo_init.sql
Luego
vas a detener y iniciar nuevamente MySQL. Una vez iniciado y todo
funcionando correctamente (incluyendo tu acceso como root con la nueva
password) puedes eliminar el archivo init de MySQL que creaste.
Alguna duda pendiente?? Los comentarios seran agradecidos :)
No hay comentarios:
Publicar un comentario