程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql誤刪root用戶恢復方法

mysql誤刪root用戶恢復方法

編輯:MySQL綜合教程

mysql誤刪root用戶恢復方法


 裝完數據庫清理一些默認賬號的時候不小心把root刪除了,flush privileges 之後的新 root 忘了grant任何權限,查看mysqld選項裡面有個 −−skip-grant-tables

 

代碼如下:


#/usr/libexec/mysqld --verbos --help

 

mysql5.5手冊說明如下

 

代碼如下:


--skip-grant-tables

 

This option causes the server to start without using the privilege system at all, which gives anyone with access to the server unrestricted access to all databases. You can cause a running server to start using the grant tables again by executing mysqladmin flush-privileges or mysqladmin reload command from a system shell, or by issuing a MySQL FLUSH PRIVILEGES statement after connecting to the server. This option also suppresses loading of plugins, user-defined functions (UDFs), and scheduled events. To cause plugins to be loaded anyway, use the --plugin-load option.

--skip-grant-tables is unavailable if MySQL was configured with the --disable-grant-options option. See Section 2.10.2, “Typical configure Options”.

 

mysqld_safe是Unix/Linux系統下的MySQL服務器的一個啟動腳本。這個腳本增加了一些安全特性,會在啟動MySQL服務器以後繼續監控其運行情況,並在出現錯誤的時候重新啟動服務器。後台啟動mysql

 

代碼如下:


#mysqld_safe --skip-grant-tables &

 

如果沒有root賬戶就添加一個

 

代碼如下:


INSERT INTO user SET User='root',Host='localhost',ssl_cipher='',x509_issuer='',x509_subject='';

 

直接輸入mysql連接並添加權限,這時候是不能使用grant命令的,只能用update

 

代碼如下:


UPDATE user SET Select_priv='Y',Insert_priv='Y',Update_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',Alter_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',Event_priv='Y',Trigger_priv='Y',Create_tablespace_priv='Y',authentication_string='' WHERE User='root';

 

注意我用的是mysql是5.5版本,可能操作過程中sql語句或其他地方有不同,語句執行完畢之後需要flush privileges ,還可能要重新登錄才行。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved