MySQL忘記密碼了怎麼辦?

接手一個項目時,若是上一位負責人沒有把項目文檔、帳號密碼整理好是一件很頭疼的事情。。 例如,當你想打開MySQL數據庫的時候 輸入:html

mysql -u root -p 一回車想輸入密碼,發現密碼錯誤!!mysql

# [MySQL for Linux錯誤 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)](https://www.cnblogs.com/gumuzi/p/5711495.html)程序員

立馬有種想要砸鍵盤的衝動~不過別慌,程序員最厲害的地方就是,上網找解決方案哈哈;web

下面就和你們分享一下 《MySQL忘記密碼的解決方案》sql

一、找到 my.cnf 配置文件的位置

windows下修改的是my.ini,這裏主要說的是Linux的具體操做,shell

Linux系統使用 whereis 可以很方便地找到文件的位置:數據庫

$ whereis my $ my:/etc/my.cnf 複製代碼
二、修改 my.cnf

若是你是 root 用戶,直接vim /etc/my.cnf (注:windows下修改的是my.ini)vim

若是你是普通用戶 , sudo vim /etc/my.cnfwindows

進入vim編輯器編輯以後,找到 [mysqld] ,按鍵盤的 i 鍵進入編輯模式,在[mysqld]後面任意一行添加 skip-grant-tables 用來跳過密碼驗證的過程:bash

mysqld 位置

 

按 ESC 退出編輯,鍵入 :wq ,回車即保存並退出。

三、 重啓 mysqld 服務
$ sudo /etc/init.d/mysqld restart 複製代碼

普通用戶在這個命令最前面加上 sudo ,root 用戶就不用啦。

四、無密進入MySQL
$ mysql -u root -p 複製代碼

出現Entering password 無需理會,回車便可進入 MySQL 數據庫。

五、修改root密碼

進入到 MySQL 數據庫以後,咱們就能夠更新 "mysql"數據庫中「user」表的 root 記錄的密碼了

mysql > use mysql;
mysql > update user set password=password('YOUR_NEW_PASSWORD') where user='root'; 
mysql > flush privileges;
複製代碼

步驟解析:

use mysql; 進入到名爲 「mysql」 的數據庫,

​ 而後使用 update 語句更新密碼,

​ 更新密碼以後使用 flush privileges; 刷新權限。

注意: password()函數是用於密碼儲存的加密函數,該函數的加密過程不可逆!所以除非用大量的數據進行比對,否則沒辦法使用什麼逆函數查看舊的密碼,只能使用該函數更新密碼,YOUR_NEW_PASSWORD 就是本身設置的新密碼。

設置好新密碼以後,Ctrl + D退出 MySQL 數據庫。

六、從新配置 my.cnf 文件

從新用 vim 打開 my.cnf ,將剛纔的 skip-grant-tables 刪除或者在前面加上#號註釋,保存並退出。

七、重啓 mysqld 服務
$ sudo /etc/init.d/mysqld restart 複製代碼
八、用新密碼進入MySQL
$ mysql -u root -p 複製代碼

出現Entering password 時,輸入你的新密碼,回車進入,出現 mysql 歡迎界面,恭喜你,修改密碼完成!

做者:57EN連接:https://juejin.im/post/5c0e579d5188257abf1d5414

相關文章
相關標籤/搜索