解決MySQL 8.0登陸Access denied for user 'root'@'localhost' (using password: YES)

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

mysql -uroot -p
複製代碼

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

Access denied for user 'root'@'localhost' (using password: YES)
複製代碼

    在網上找了不少解決辦法,可是基本只有一個,在.ini文件中的mysqld條目添加sql

skip-grant-tables
複製代碼

    而後重啓服務器,再按照剛剛的步驟再來一遍(最後不輸入密碼),可是仍是一條語句把我攔了下來安全

Access denied for user 'root'@'localhost' (using password: NO)
複製代碼

    綜合了網上不少方法,本身一個一個拼接着去試,最後成功了     整體上的思想仍是修改.ini配置文件的內容,不過是經過命令行的形式修改,不知道是否是由於版本迭代了把之前那個直接修改文件的方法屏蔽了,不管如何,經過命令行修改在MySQL 8.0上是能夠的。bash

    下面開始吧。服務器

  • 以管理員身份打開cmd,切換到MySQL的bin目錄
  • 關閉MySQL服務器
net stop mysql
複製代碼
  • 跳過輸入密碼的步驟(注意:文件名字與路徑要與本身的吻合)
mysqld --defaults-file="D:\MySQL\my.ini" --console --skip-grant-tables
複製代碼
  • 若是出現相似截圖圈起來的語句則說明成功 this

    20180516232955330.png

  • 重啓服務器spa

net start mysql
複製代碼
  • 登陸MySQL服務器
mysql -uroot -p
複製代碼

輸入密碼以後就能登陸成功了。(數字1跟字母l很像很像)命令行

  • 到這一步差很少就能完成了,可是當我輸入
show databases;
複製代碼

    MySQL給個人反饋是:3d

You must reset your password using ALTER USER statement before executing this statement.
複製代碼

    個人猜想應該是MySQL認爲安裝時提供的隨機密碼不安全,讓用戶重置密碼。     網上找了一下,而後找到的現成辦法     參考文章:dev.mysql.com/doc/ref...

  • 密碼永不過時的
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼' PASSWORD EXPIRE NEVER;
複製代碼
  • 密碼有限期的
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼' PASSWORD EXPIRE;
複製代碼

     而後從新登陸一下服務器就能正常的操做了。

相關文章
相關標籤/搜索