dinsdag 26 april 2011

Recovery for mysql root password

Vaker root account password verloren of per ongeluk root account gedelete? Sterker nog u bent gehack geweest en kan niet meer in uw eigen database?
Dit zijn volledige stappen om uw database weer terug te krijgen.

Het bestaat uit 2 delen:
a. Het terugzetten van privileges voor root
b. Een nieuw password creeren

Ga na wat nodig is voor jou situatie of doe beide.

A. Het terugzetten van privileges.

1. Maak een copy van de data alvorens u begint!!!
2. Herinstalleer de server volledig

Nee hor sla stap 2 over. Dat was om te zien hoe gestressed u bent.

3. mysqld --skip-grant-tables &
4. Voer de volgende queries uit:
update mysql.user set Super_priv='y' where user='root';
update mysql.user set Select_priv='y' where user='root';
update mysql.user set Insert_priv='y' where user='root';
update mysql.user set Update_priv='y' where user='root';
update mysql.user set Delete_priv='y' where user='root';
update mysql.user set Create_priv='y' where user='root';
update mysql.user set Drop_priv='y' where user='root';
update mysql.user set Reload_priv='y' where user='root';
update mysql.user set Shutdown_priv='y' where user='root';
update mysql.user set Process_priv='y' where user='root';
update mysql.user set File_priv='y' where user='root';
update mysql.user set Grant_priv='y' where user='root';
update mysql.user set References_priv='y' where user='root';
update mysql.user set Index_priv='y' where user='root';
update mysql.user set Alter_priv='y' where user='root';
update mysql.user set Show_db_priv='y' where user='root';
update mysql.user set Super_priv='y' where user='root';
update mysql.user set Create_tmp_table_priv='y' where user='root';
update mysql.user set Lock_tables_priv='y' where user='root';
update mysql.user set Execute_priv='y' where user='root';
update mysql.user set Repl_slave_priv='y' where user='root';
update mysql.user set Repl_client_priv='y' where user='root';
update mysql.user set Create_view_priv='y' where user='root';
update mysql.user set Show_view_priv='y' where user='root';
update mysql.user set Create_routine_priv='y' where user='root';
update mysql.user set Alter_routine_priv='y' where user='root';
update mysql.user set Create_user_priv='y' where user='root';



5.Deze stap is misschien zelfs de belangrijkste
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;


6. Sluit mysql af
quit;


B. Het resetten van de root password (in safe mode mysql starten)
1. Start mysql zonder password
mysql -u root
2. Open de mysql database
use mysql
3. Verander het password
update user set password=PASSWORD("mynewpassword") where User='root';
4. Herstel privileges
flush privileges;
5. Sluit mysql
quit;
6. Restart de mysql server

Andere optie voor het resetten is:
1. Mysql server in safe mode opstarten
2. Verander het password (let op geen spatie plaatsen  tussen -p en het huidig password)
mysqladmin -u root password 'newpassword'

Succes!