記一次線上誤刪mysql所有賬號密碼恢復!

2021-09-10 23:55:31 字數 1975 閱讀 6020

記一次線上誤刪mysq所有賬號密碼恢復!

這幾天一直在整理線上mysql賬號,需要把某些賬號的drop許可權revoke掉。有一台機器的mysql使用mysql命令登入進去後,(通過select current_user檢視實際登入的是root@localhost)執行revoke操作提示需要輸入密碼。為什麼啊?後面再說!

也就是當前登入的賬號'root'@'localhost'沒有許可權執行grant、revoke子命令!為什麼?

這時我就分別檢視root@localhost、[email protected]的許可權,發現前人留了乙個坑在這裡,如圖:

'root'@'localhost' 使用者沒有使用with grant option子句;

[email protected]該使用者使用了with grant option 子句;

那麼with grant option有什麼用呢?

子句 "with grant option" 表示該使用者可以為其他使用者分配許可權。

那麼我就使用[email protected]登入,但是提示需要密碼,但是密碼忘記了,那就使用root@localhost進入後去掉[email protected]就行咯!(所以這裡就是上面root@localhost使用grant許可權需要密碼的原因的,因為都是root使用者,host不同。)

於是我使用root@localhost登入後,不知道是我有多久沒有使用update語句了還是剛剛過完年沒有緩過來,我很直接輸入update mysql.user set password = ' ';

我居然就按下直接回車,這下完了,沒有加where條件,把這個mysql上所有的使用者密碼清空!!!

(這是乙個業務庫,有好幾個業務賬號**裡面配置了賬號密碼的)完了完了。。。

一會後我才緩過神來,並沒有真正載入授權表,我還沒有執行full privilege,謝天謝地,謝謝mysql這個full privilege機制!!

順便說下full privilege ?

簡單來說,修改了mysql庫後並不會立馬載入授權表,當你執行full privileges mysql引擎會重新載入授權表,你的修改才會立馬生效。

但是我得把原來的密碼恢復啊!!!

幸好,之前通過select host,user,password from mysql.user 查出來密碼,是通過md5加密的。

那也沒關係,通過grant 重新授權為all,密碼直接使用這個md5加密的密碼就可以了咯。

這裡說一下grant的時候輸入明文的密碼和md5加密後的密碼怎麼樣恢復:

目前我是知道md5加密的密碼的,使用

grant all on *.* to '***'@'%'identified by password'md5加密後的密碼';

如果知道原密碼,使用

grant all on *.* to '***'@'%'identified by'12345';

先直接使用mysql 直接登入進去,flush後退出使用[email protected],執行grant 再flush

預案

假如full privileges 後使用[email protected]不能登入或使用root@localhost不能grant,

1.修改配置檔案,去掉 #skip-grant-tables 的注釋,重啟mysql服務

vim /etc/my.cmf

去掉注釋#skip-grant-tables

2.再處理!!

那麼問題好解決了,先直接使用mysql 直接登入進去,flush後退出使用[email protected],執行grant 再flush,後面就是使用賬號登入測試,show processlist 看連進來的socket的mysql-proxy log。

update 操作一定要想清楚要不要加where!!

上班不要想妹子le

記一次線上問題排查

這次線上問題來的比較突然,影響也大,用部落格記錄下整個過程,也當作是對這次事故的一次總結歸納。day1 2018年06月21號上午10點,收到運營同事通知,http com api 訪問量劇增,日誌量達到80g 天,而且有上公升趨勢。運營同事讓我們排查,這種訪問是否正常。運營統計訪問量 收到通知後立...

記一次線上快取問題

今天上線專案時,檢視乙個軟體列表,我的介面裡是findall,可是軟體列表裡沒有type欄位沒有出現,後來檢查發現 是線下softmodel裡type欄位沒更新過來,清完線下表快取,並用gii重新生成了下softmodel,然後再次上線。再次檢視線上該軟體列表,還是沒有type欄位,估計第一次檢視的...

記一次線上OOM問題

首先是 jmap dump format b,file file.hprof 匯入mat工具 定位的問題是 standardmanager和standardsession檢視原始碼發現concurrenthashmap node就是standardmanager的session屬性 protecte...