一、問題背景
MySQL是目前應用最廣泛的關係型資料庫之一,但在使用的過程中,可能不可避免的會出現忘記MySQL賬號密碼的情況。這時候怎麼辦呢?本篇文章將從多方面為大家介紹MySQL8.0忘記密碼的解決方案。
二、方案1:更新root密碼
如果您忘記了root密碼,可以通過以下方法來更新root密碼:
1. 停止MySQL服務,使用管理員許可權打開cmd,輸入如下命令:
net stop mysql80
2. 修改MySQL配置文件my.ini,在[mysqld]下加入skip-grant-tables,表示跳過許可權驗證:
[mysqld]
……
skip-grant-tables
3. 重啟MySQL服務,打開cmd,輸入如下命令:
net start mysql80
4. 使用root賬號登錄MySQL,無需密碼:
mysql -uroot
5. 更新root密碼:
mysql> UPDATE user SET authentication_string=password('新密碼') WHERE user='root';
mysql> FLUSH PRIVILEGES;
6. 刪除my.ini中的skip-grant-tables,重啟MySQL服務,再次登錄root用戶,使用新密碼即可:
mysqladmin -uroot -p shutdown
net start mysql80
mysql -uroot -p
三、方案2:使用mysqladmin命令重置密碼
MySQL自帶了mysqladmin命令,我們可以藉助該命令來重置MySQL賬戶密碼:
1. 停止MySQL服務,使用管理員許可權打開cmd,輸入如下命令:
net stop mysql80
2. 修改MySQL配置文件my.ini,在[mysqld]下加入skip-grant-tables,表示跳過許可權驗證:
[mysqld]
……
skip-grant-tables
3. 重啟MySQL服務,打開cmd,輸入如下命令:
net start mysql80
4. 使用mysqladmin命令來重置MySQL賬戶root的密碼:
mysqladmin -u root password 新密碼
5. 刪除my.ini中的skip-grant-tables,重啟MySQL服務,使用新密碼即可:
mysqladmin -uroot -p shutdown
net start mysql80
mysql -uroot -p
四、方案3:修改MySQL數據表中密碼
如果您不知道root賬戶密碼,也可以直接修改MySQL數據表中的密碼,來達到重置密碼的目的:
1. 停止MySQL服務,使用管理員許可權打開cmd,輸入如下命令:
net stop mysql80
2. 修改MySQL配置文件my.ini,在[mysqld]下加入skip-grant-tables,表示跳過許可權驗證:
[mysqld]
……
skip-grant-tables
3. 重啟MySQL服務,打開cmd,輸入如下命令:
net start mysql80
4. 登錄MySQL,不需要密碼了:
mysql -uroot
5. 修改root賬戶的密碼,例如修改為「123456」:
mysql> use mysql;
mysql> update user set authentication_string=password('123456') where user='root';
6. 刷新許可權:
mysql> flush privileges;
7. 刪除my.ini中的skip-grant-tables,重啟MySQL服務,使用新密碼即可:
mysqladmin -uroot -p shutdown
net start mysql80
mysql -uroot -p
五、方案4:通過重置system表空間密碼進行重置
如果您不是系統管理員,也可以使用以下手段來重置密碼:
1. 使用管理員許可權登錄MySQL,執行以下SQL語句:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
2. 刷新許可權:
FLUSH PRIVILEGES;
3. 重置system表空間密碼:
SET PASSWORD FOR 'root'@'localhost' = '123456';
4. 退出MySQL,使用新密碼登錄即可:
exit
mysql -uroot -p
六、小結
本篇文章總結了多種方案用於解決MySQL8.0忘記密碼的問題。根據個人情況選擇相應的方案即可。如果以上方案都無法解決問題,建議您搜索相關技術社區解決方案,或者諮詢專業人士。
原創文章,作者:XLSPH,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/368447.html