問題描述
在使用命令行登錄 MySQL 時出現(xiàn)了下述問題:
或:ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO)
出錯原因
-
using password: NO
:表示輸入沒有輸入密碼就嘗試登陸了 -
using password: YES
:表示輸入了密碼,但密碼錯誤
所以,很有可能是忘記密碼了,因此需要重設(shè)密碼。
解決方案:修改密碼
一、MySQL 5.7版本
Step 1:跳過MySQL密碼驗證
? 找到 MySQL 的配置文件 “my.ini”,找到 [mysqld],在其下面任意一行添加 skip-grant-tables
,保存,如下圖所示:
注:my.ini”文件可能在目錄
C:\ProgramData\MySQL
下。
Step 2
重啟 MySQL 服務(wù)。
Step 3:無密碼登錄MySQL
-
找到 MySQL 安裝目錄下的 bin 目錄,地址欄輸入 cmd,然后回車,如下圖所示:
附:如果已經(jīng)為 MySQL 8.0 配置了環(huán)境變量,就可以在任意位置打開 cmd。
-
輸入
mysql -u root -p
回車后會顯示輸入密碼,直接不管,再次回車,不要關(guān)閉命令行,如下圖所示:
Step 4:將登錄密碼設(shè)置為空
? 在上一步的命令行中依次輸入:① use mysql;
② update user set authentication_string='' where user='root';
③ quit;
。如下圖所示:
Step 5:更改登錄密碼
- 關(guān)閉上一個命令行
- 重啟 MySQL 服務(wù)
- 打開新的 cmd 命令行,并輸入
mysql -u root -p
后回車、回車(連續(xù)兩次回車) - 刷新權(quán)限,輸入
flush privileges;
后回車 - 最后輸入
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';
后回車
筆者將密碼重置為 root,如下圖所示:
Step 6:重新設(shè)置MySQL密碼驗證
與第一步相反,刪除之前添加的“skip-grant-tables”即可。
????????????????????????????????????????????????????????????????????????????????????????
????????????????????????????????????????????????????????????????????????????????????????
????????????????????????????????????????????????????????????????????????????????????????
一、MySQL 8.x版本
Step 1
停止 MySQL 服務(wù)。
Step 2
創(chuàng)建一個名為 mysql-init.txt
的文本文件,里面有一行內(nèi)容 ALTER USER 'root'@'localhost' IDENTIFIED BY '你想設(shè)置的密碼';
,然后保存。
說明:
- 后續(xù)會調(diào)用這個文件,以設(shè)置為 ‘你想設(shè)置的密碼’。
- 這個文件可以放在任意路徑下,為便于后續(xù)的步驟,筆者直接放在 C 盤根目錄下了。
Step 3
-
以管理員身份運行 cmd
步驟:搜索 cmd → 右鍵 → 以管理員身份運行
打開后,如下圖所示:
-
切換到 MySQL 8.0 程序所在的 bin 目錄,如下圖所示
-
輸入
mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" --init-file=C:\\mysql-init.txt
輸入的命令分為三部分,如下圖所示:
- ① MySQL 8.0 版本的服務(wù) → 右鍵 → 屬性 → 可執(zhí)行路徑 → 選擇與 ① 對應(yīng)的內(nèi)容,復(fù)制
- ③
--init-file=
+mysql-init.txt
文件所在的路徑。筆者直接保存在 C 盤根目錄下了,所以此條命令為--init-file=C:\\mysql-init.txt
- ③ 在 ① 和 ② 之間有一個空格。
-
輸入完上述命令后,回車。發(fā)現(xiàn)光標停留在空行上,這說明修改成功,如下圖所示:
-
關(guān)閉當前命令行,必須關(guān)閉,否則無法啟動 MySQL 服務(wù),如下圖所示:
-
刪除
mysql-init.txt
文件
最后的最后,重新登錄一下,看是否重置成功。(不要忘記啟動 MySQL 服務(wù))
參考:
[1] https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html
[2] https://www.jb51.net/article/215881.htm
[3] https://blog.csdn.net/Fatelzg/article/details/120207664文章來源:http://www.zghlxwxcb.cn/news/detail-667865.html
[4] https://blog.csdn.net/qq_52572621/article/details/127105324文章來源地址http://www.zghlxwxcb.cn/news/detail-667865.html
到了這里,關(guān)于ERROR 1045 (28000) Access denied for user ‘root‘@‘localhost‘ (using password YES/NO)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!