MySQL刪除root用戶后恢復
MySQL數據庫中有一個超級特權用戶,那就是root。root用戶有至高無上的權限,它可以創建數據庫,創建用戶,賦予用戶權限,對所以數據庫擁有所有的操作權限。一旦這個用戶被刪除了會怎么樣呢,我們可想而知。總之,MySQL中不能沒有它,那么如果root用戶被刪除后,該怎么恢復呢?且看下文。
首先,跟忘記root用戶密碼差不多,需要設置MySQL跳過權限檢查。
1、用系統管理員登陸系統。
2、停止MySQL的服務,命令:net stop mysql
3、進入命令窗口,然后進入MySQL的安裝目錄,比如我的安裝目錄是c:\mysql,進入C:\mysql\bin
4、跳過權限檢查啟動MySQL,執行 c:\mysqlbin>mysqld-nt --skip-grant-tables。這個窗口暫時就留給它用了,等會兒用完后再關閉。如果現在就關閉,那MySQL也會跟着被關閉。
這樣就啟動了一個不需要密碼的MySQL實例進程。接下來就登陸進去,重新創建MySQL用戶。
5、C:\mysql\bin>mysql -uroot -p,提示輸入密碼的時候隨便輸入什么都可以進去。或者,直接C:\mysql\bin>mysql就可以進去了。
6、然后,use mysql,往mysql的user表中插入一條root用戶的記錄。
insert into user set user='root',ssl_cipher='',x509_issuer='',x509_subject='';
update user set Host='localhost',select_priv='y', insert_priv='y',update_priv='y',Alter_priv='y',delete_priv='y',create_priv='y',drop_priv='y',reload_priv='y',shutdown_priv='y',Process_priv='y',file_priv='y',grant_priv='y',References_priv='y',index_priv='y',show_db_priv='y',super_priv='y',create_tmp_table_priv='y',Lock_tables_priv='y',execute_priv='y',repl_slave_priv='y',repl_client_priv='y',create_view_priv='y',show_view_priv='y',create_routine_priv='y',alter_routine_priv='y',create_user_priv='y' where user='root';
7、然后退出MySQL,再以有權限檢查的方式登陸進來。(先關閉運行mysqld-nt --skip-grant-tables時的窗口,再運行net start mysql)
8、運行C:\mysql\bin>mysql -uroot -p,這個時候密碼本身為空,直接回車就可登陸進去。
9、use mysql;
10、修改root密碼,mysql> update user set password=password('123456') where user='root';
11、如果提示unkown column password,則是因為版本問題,字段名稱改了.mysql> update user set authentication_string=password('123456') where user='root';
這樣就大功告成了,再善后一下
12、mysql> flush privileges; mysql> exit;