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認為安裝時提供的隨機密碼不安全,讓用戶重置密碼。

        網上找了一下,然后找到的現成辦法

        參考文章:https://dev.mysql.com/doc/refman/5.7/en/alter-user.html

        密碼永不過期的

ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼' PASSWORD EXPIRE NEVER;
        密碼有限期的

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


        然后重新登錄一下服務器就能正常的操作了。
---------------------
作者:cartoony
來源:CSDN
原文:https://blog.csdn.net/cartoon_/article/details/80344637
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM