近些時間在開始學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
下面開始吧。服務器
net stop mysql
複製代碼
mysqld --defaults-file="D:\MySQL\my.ini" --console --skip-grant-tables
複製代碼
若是出現相似截圖圈起來的語句則說明成功 this
重啓服務器spa
net start 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;
複製代碼
而後從新登陸一下服務器就能正常的操做了。