2013-01-24 58 views

回答

1

當啓動MySQL守護進程,你可以給一個--init-file作爲選項,其中包含要在啓動時執行的SQL。

粘貼此SQL查詢到一個文件,例如/home/me/recover-mysql-root

INSERT INTO 
    mysql.user (`Host`, `User`, `Password`, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv, Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv, Execute_priv, Repl_slave_priv, Repl_client_priv, Create_view_priv, Show_view_priv, Create_routine_priv, Alter_routine_priv, Create_user_priv, Event_priv, Trigger_priv, Create_tablespace_priv) 
VALUES 
    ('localhost', 'root', PASSWORD('MyNewPass'), 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y'); 

然後用這個初始化腳本啓動MySQL,它應該創建所有權限的新帳戶[email protected]

shell> mysqld_safe --init-file=/home/me/recover-mysql-root & 

欲瞭解更多信息,請參閱How to Reset the Root Password Docs