接手一個項目時,若是上一位負責人沒有把項目文檔、帳號密碼整理好是一件很頭疼的事情。。 例如,當你想打開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 複製代碼
若是你是 root 用戶,直接vim /etc/my.cnf
(注:windows下修改的是my.ini)vim
若是你是普通用戶 , sudo vim /etc/my.cnf
windows
進入vim編輯器編輯以後,找到 [mysqld] ,按鍵盤的 i 鍵進入編輯模式,在[mysqld]後面任意一行添加 skip-grant-tables
用來跳過密碼驗證的過程:bash
按 ESC 退出編輯,鍵入 :wq ,回車即保存並退出。
$ sudo /etc/init.d/mysqld restart 複製代碼
普通用戶在這個命令最前面加上 sudo ,root 用戶就不用啦。
$ mysql -u root -p 複製代碼
出現Entering password 無需理會,回車便可進入 MySQL 數據庫。
進入到 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 刪除或者在前面加上#號註釋,保存並退出。
$ sudo /etc/init.d/mysqld restart 複製代碼
$ mysql -u root -p 複製代碼
出現Entering password 時,輸入你的新密碼,回車進入,出現 mysql 歡迎界面,恭喜你,修改密碼完成!
做者:57EN連接:https://juejin.im/post/5c0e579d5188257abf1d5414