接手一個(gè)項(xiàng)目時(shí)奏窑,如果上一位負(fù)責(zé)人沒有把項(xiàng)目文檔导披、賬號(hào)密碼整理好是一件很頭疼的事情。埃唯。
例如撩匕,當(dāng)你想打開MySQL數(shù)據(jù)庫的時(shí)候 輸入:
mysql -u root -p
一回車想輸入密碼,發(fā)現(xiàn)密碼錯(cuò)誤D选滑沧!
# [MySQL for Linux錯(cuò)誤 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)](https://www.cnblogs.com/gumuzi/p/5711495.html)
立馬有種想要砸鍵盤的沖動(dòng)~不過別慌,程序員最厲害的地方就是巍实,上網(wǎng)找解決方案哈哈滓技;
下面就和大家分享一下 《MySQL忘記密碼的解決方案》
1、找到 my.cnf
配置文件的位置
windows下修改的是my.ini棚潦,這里主要說的是Linux的具體操作令漂,
Linux系統(tǒng)使用 whereis 能夠很方便地找到文件的位置:
$ whereis my
$ my:/etc/my.cnf
2、修改 my.cnf
如果你是 root 用戶,直接vim /etc/my.cnf
(注:windows下修改的是my.ini)
如果你是普通用戶 叠必, sudo vim /etc/my.cnf
進(jìn)入vim編輯器編輯之后荚孵,找到 [mysqld] ,按鍵盤的 i 鍵進(jìn)入編輯模式纬朝,在[mysqld]后面任意一行添加 skip-grant-tables
用來跳過密碼驗(yàn)證的過程:
按 ESC 退出編輯收叶,鍵入:wq ,回車即保存并退出共苛。
3判没、 重啟 mysqld 服務(wù)
$ sudo /etc/init.d/mysqld restart
普通用戶在這個(gè)命令最前面加上 sudo ,root 用戶就不用啦。
4隅茎、無密進(jìn)入MySQL
$ mysql -u root -p
出現(xiàn)Entering password 無需理會(huì)澄峰,回車即可進(jìn)入 MySQL 數(shù)據(jù)庫。
5辟犀、修改root密碼
進(jìn)入到 MySQL 數(shù)據(jù)庫之后俏竞,我們就可以更新 "mysql"數(shù)據(jù)庫中“user”表的 root 記錄的密碼了
mysql > use mysql;
mysql > update user set password=password('YOUR_NEW_PASSWORD') where user='root';
mysql > flush privileges;
步驟解析:
? use mysql;
進(jìn)入到名為 “mysql” 的數(shù)據(jù)庫,
? 然后使用 update 語句更新密碼堂竟,
? 更新密碼之后使用 flush privileges;
刷新權(quán)限魂毁。
注意: password()函數(shù)是用于密碼儲(chǔ)存的加密函數(shù),該函數(shù)的加密過程不可逆出嘹!因此除非用大量的數(shù)據(jù)進(jìn)行比對(duì)席楚,不然沒辦法使用什么逆函數(shù)查看舊的密碼,只能使用該函數(shù)更新密碼疚漆,YOUR_NEW_PASSWORD 就是自己設(shè)置的新密碼酣胀。
設(shè)置好新密碼之后刁赦,Ctrl + D退出 MySQL 數(shù)據(jù)庫娶聘。
6、重新配置 my.cnf
文件
重新用 vim 打開 my.cnf 甚脉,將剛才的 skip-grant-tables 刪除或者在前面加上#號(hào)注釋丸升,保存并退出。
7牺氨、重啟 mysqld 服務(wù)
$ sudo /etc/init.d/mysqld restart
8狡耻、用新密碼進(jìn)入MySQL
$ mysql -u root -p
出現(xiàn)Entering password 時(shí),輸入你的新密碼猴凹,回車進(jìn)入夷狰,出現(xiàn) mysql 歡迎界面,恭喜你郊霎,修改密碼完成沼头!
親身測(cè)試有效解決方案,有什么問題歡迎你留言交流。