1. 程式人生 > 資料庫 >win10下MySQL 8.0登入Access denied for user‘root’@‘localhost’ (using password: YES)問題的解決方法

win10下MySQL 8.0登入Access denied for user‘root’@‘localhost’ (using password: YES)問題的解決方法

近些時間在開始學MySQL,安裝挺順利的,按照網上現成的教程就能安裝成功。

但是,在我開開心心地輸入

mysql -uroot -p

再輸入密碼時,遇到了這個情況

Access denied for user 'root'@'localhost' (using password: YES)

在網上找了很多解決辦法,但是基本只有一個,在.ini檔案中的mysqld條目新增

skip-grant-tables

然後重啟伺服器,再按照剛剛的步驟再來一遍(最後不輸入密碼),但是還是一條語句把我攔了下來

Access denied for user 'root'@'localhost' (using password: NO)

綜合了網上很多方法,自己一個一個拼接著去試,最後成功了。

總體上的思想還是修改.ini配置檔案的內容,不過是通過命令列的形式修改,不知道是不是因為版本迭代了把以前那個直接修改檔案的方法遮蔽了,無論如何,通過命令列修改在MySQL 8.0上是可以的。

下面開始吧。

1.以管理員身份開啟cmd,切換到MySQL的bin目錄

2.關閉MySQL伺服器

net stop mysql

3.跳過輸入密碼的步驟

mysqld --defaults-file="D:\MySQL\my.ini" --console --skip-grant-tables

注意:檔名字與路徑要與自己的吻合)

如果出現類似截圖圈起來的語句則說明成功

4.重啟伺服器

net start mysql

5.登入MySQL伺服器

mysql -uroot -p

輸入密碼之後就能登入成功了。

(數字1跟字母l很像很像)

到這一步差不多就能完成了,但是當我輸入

show databases;

MySQL給我的反饋是:

You must reset your password using ALTER USER statement before executing this statement.

我的猜測應該是MySQL認為安裝時提供的隨機密碼不安全,讓使用者重置密碼。

網上找了一下,然後找到的現成辦法,參考文章

密碼永不過期的

ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼' PASSWORD EXPIRE NEVER;

密碼有限期的

ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼' PASSWORD EXPIRE;

然後重新登入一下伺服器就能正常的操作了。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。