在MySQL Workbench8.0中,忘記MySQL root密碼的情況下修改密碼


適用:如果你已經安裝好MySQL,但因為忘記root密碼且不想重新下載而無法建立連接,那么本文可能對你有用

前提:已經在環境變量中配置好mysql路徑

步驟:

Step1.准備配置文件

(1)查看根目錄MySQL\MySQL Server 8.0下是否有my.ini文件

若無則手動添加,內容如下:

[mysqld]
basedir=C:\Program Files\MySQL\MySQL Server 8.0
datadir=C:\Program Files\MySQL\MySQL Server 8.0\data
port = 3306
character-set-server=utf8mb4
default_authentication_plugin=mysql_native_password
[mysql]default-character-set=utf8mb4

注: 這里使用utfmb4而非一般的utf8是因為后來出現系統警告:utf8默認為utf8mb3,建議修改成utf8mb4,否則會引起歧義

注:若因權限無法創建文件,可以在桌面先創建一個txt文檔,將my.ini內容復制進去,再修改txt文檔為my.ini,最后拖進根目錄下。

(2)查看根目錄下是否有data文件夾,若無則創建一個。

Step2.獲得初始化密碼

以管理員身份打開cmd,執行如下指令

mysqld -- initialize --console

如果成功,沒有任何[ERROR]出現,則記住以[Note]開頭的新生成密碼(若無則說明密碼為空),並跳轉到step 5

如果出現無法初始化data文件等情況,繼續進行step3

2020-05-27T13:15:21.009962Z 0 [System] [MY-010116] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe (mysqld 8.0.18) starting as process 9524
2020-05-27T13:15:21.036492Z 1 [ERROR] [MY-011011] [Server] Failed to find valid data directory.
2020-05-27T13:15:21.041391Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2020-05-27T13:15:21.043381Z 0 [ERROR] [MY-010119] [Server] Aborting
2020-05-27T13:15:21.045730Z 0 [System] [MY-010910] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe: Shutdown complete (mysqld 8.0.18)  MySQL Community Server - GPL.

Step3.刪除mysqld

先刪除根目錄下data文件夾的內容,再執行mysqld -remove MySQL命令,刪除mysqld

C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqld -remove MySQL

結果如下:

Step4.重新初始化mysqld

執行如下命令:

C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqld --initialize

可以看到data文件夾下生成新文件

Step5.安裝mysqld

C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqld --install
Service successfully installed.

 Step6.啟動mysql

C:\WINDOWS\system32>net start mysql
MySQL 服務正在啟動 .
MySQL 服務已經啟動成功。

 Step7.登錄mysql

C:\WINDOWS\system32>mysql -u root -p

此處提示輸入密碼,如果前面有新密碼生成,則使用之,若無,則直接按回車。進入以下界面

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.18 MySQL Community Server - GPL

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

 Step8.更換密碼

使用ALTER修改密碼(下面的password處換成你自己的新密碼)

mysql> ALTER USER "root"@"localhost" IDENTIFIED  BY "password";
Query OK, 0 rows affected (0.01 sec)

 

最后去mysql workbench建立連接,輸入密碼,成功連接。

 

PS:

(1)如果出現以下端口占用提示

2020-05-27T13:19:25.830301Z 0 [System] [MY-010116] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe (mysqld 8.0.18) starting as process 13376
2020-05-27T13:19:27.055277Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2020-05-27T13:19:27.064723Z 0 [ERROR] [MY-010262] [Server] Can't start server: Bind on TCP/IP port: 通常每個套接字地址(協議/網絡地址/端口)只允許使用一次。

2020-05-27T13:19:27.070412Z 0 [ERROR] [MY-010257] [Server] Do you already have another mysqld server running on port: 3306 ?
2020-05-27T13:19:27.082431Z 0 [ERROR] [MY-010119] [Server] Aborting
2020-05-27T13:19:28.077042Z 0 [System] [MY-010910] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe: Shutdown complete (mysqld 8.0.18)  MySQL Community Server - GPL.

 說明3306端口被占用,新打開cmd,查看端口占用情況

C:\WINDOWS\system32>netstat -ano|findstr "3306"

 

殺死對應的進程

C:\WINDOWS\system32>taskkill/f /pid 15060 /f

 (2)如果mysql服務無法啟動,且沒有報錯,則說明你的mysql已經登錄或使用,或者3306端口被占用,關閉對應進程就行。

 

 (3)如果下次打開MySQL Workbench連接時又提示3306端口被占用或者密碼錯誤,則按照上面方法查看3306端口是否被占用,殺死相應進程。如果還是不行,就再次進入MySQL Server的bin目錄下執行net start mysql命令,將服務開啟,再去MySQL Workbench連接


免責聲明!

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



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