MySQL8 忘記root密碼 重置root密碼


 

敘:好久不用本地的MySQL庫了,今天自己學點東西,結果發現密碼忘了,自己安裝的是MySQL8的數據庫,在重置root密碼時發現MySQL8的數據庫重置密碼的操作和之前的版本並不相同,特此記錄一下!


 

 


1、第一步:置空root原密碼

1.1、“越獄”跳過root密碼進行登錄

  • 思路: 使用管理員權限模式打開CMD面板,輸入:mysqld --console --skip-grant-tables --shared-memory(在此之前確定MySQL的所有服務都是關閉的,可以先使用 net stop mysql80 來進行關閉MySQL的服務,“MySQL80”是指自己電腦上MySQL的服務名,不要寫錯了,我的是MySQL80,各位童鞋請根據自己的進行改變)。
  • 命令:mysqld --console --skip-grant-tables --shared-memory
  • 操作樣式如下所示:


1.2、置空root密碼操作

1.2.1、進入MySQL操作空間

  • 思路: 再次以管理員身份打開一個CMD面板,上一個面板不要關閉也不要進行任何操作,在新打開的CMD面板中輸入:mysql -uroot -p回車,提示讓你輸入密碼,之前的步驟已經幫我們越過了密碼校驗功能,我們不用輸入任何東西,直接再次回車,即可進入MySQL中,如下圖:
  • 命令: mysql -uroot -p
  • 操作樣式如下圖所示:

    進入MySQL命令操作模式;

1.2.2、去除root用戶的密碼

  • 思路: 輸入三條命令來去除root用戶的密碼;

  • 命令:

    1. use mysql; // 進入操作MySQL數據庫的模式;
    2. update user set authentication_string=’’ where user=’root’; // 更新置空root用戶的校驗字符串(可以理解為就是登陸密碼)
    3. select user, authentication_string from mysql.user; // 查看root用戶的校驗字符串是否被置空;
  • 操作樣式如下所示:

    可以清晰地看到root用戶的authentication_string字段被置空成功了;

1.2.3、將之前的操作刷新保存

  • 命令: flush privileges
    在這里插入圖片描述

2、第二步:配置root用戶密碼並測試

2.1、配置root用戶密碼

  • 思路: 關閉之前的兩個CMD命令行面板,然后重新在啟動一個以管理員身份運行的CMD命令行面板,然后開始給root設置密碼(其實現在的root用戶的密碼已經被清空,如果對於root密碼不在意的即使不設置亦可以;),在CMD中輸入以下
  • 命令:
    1. net start MySQL80 //啟動mysql
    2. mysql -uroot -p // 使用root用戶進行登陸MySQL,出現的密碼輸入提示不用管,直接回車即可
    3. use mysql; //
    4. alter user 'root'@'localhost' identified by '你的新密碼';// 給root用戶的密碼插入值
    5. select user, authentication_string from mysql.user; // 查看root用戶的校驗字符串插入是否操作成功
    6. flush privileges; // 刷新之前的操作
    7. exit // 退出MySQL操作空間
    8. net stop mysql80 //關閉MySQL服務
  • 操作如下圖所示(上邊的命令也許並未在圖中完全顯示,按照命令走就OK了):


2.2、更改結果測試

  • 思路: 關閉已有的CMD命令行面板,重新開啟一個管理員身份操作的CMD命令行面板,然后開始登陸,代碼如下:

  • 命令:

    1. net start mysql80 // 打開MySQL服務
    2. mysql -uroot -p// 登陸MySQL,然后輸入之前設定的root用戶的密碼,回車即可;
  • 操作樣式如下:
    在這里插入圖片描述
    登陸成功~

  • Navicat連接數據庫測試,如下圖:
    在這里插入圖片描述
    測試成功~


pass1:本來想在置空了root用戶密碼后直接再給root用戶進行設置密碼的,但是發現因為“越獄”的跳過密碼的命令導致無法立即賦值,因此才需要關閉了操作之后再進行設定root密碼~

pass2:在mysql8.0以及以上版本中update mysql.user set password='newpassword' where user='root';update mysql.user set password=PASSWORD('newpassword') where User='root'; 等一些命令已經不允許被使用了;


《END》

 


免責聲明!

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



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