mysql忘記root密碼的解決辦法(針對不同mysql版本)
1.前提說明
1.1 cmd 窗口打開方式
cmd 命令窗口請以“管理員”身份打開運行,否則可能提示權(quán)限不足。(net
命令需要管理員權(quán)限)
1.2 mysql 服務(wù)相關(guān)命令知識補充
# 安裝 mysql 服務(wù) mysqld -install # 安裝 mysql 服務(wù)并指定服務(wù)名稱,格式:mysqld -install [ServiceName] # 如果不指定服務(wù)名,默認的服務(wù)名稱為 mysql mysqld -install mysql80 # 移除 mysql 服務(wù),格式:mysqld --remove [ServiceName] mysqld --remove mysql80 # 啟動 mysql80 服務(wù),格式:net start [ServiceName] net start mysql80 # 查看正在運行的所有服務(wù) net start # 查看特定服務(wù),通過字符串過濾完成,格式:net start | findstr [ServiceName] net start | findstr mysql80 # 停止 mysql80 服務(wù),格式:net stop [ServiceName] net stop mysql80
1.3 三個 mysql 版本說明
文章共給出三個 MySQL 階段版本的忘記密碼解決辦法,分別是:
- MySQL 5.7.6 以前
- MySQL 5.7.6 及以后(MySQL 8.0 以前)
- MySQL 8.0+
MySQL 有一個 5.7.6 分界線,是由于從 MySQL 5.7.6 版本開始,mysql.user
表中的 password
列已被廢棄,并且從 MySQL 8.0 版本中完全移除。在 MySQL 5.7.6 及以后的版本中,密碼存儲在 authentication_string
列中,該列使用的是新的身份驗證插件和密碼哈希算法。
The column in the mysql.user
table now stores credential information for all accounts. The Password
column, previously used to store password hash values for accounts authenticated with the mysql_native_password
and mysql_old_password
plugins, is removed.
1.4 運行時可能發(fā)生的報錯問題
如果嚴格按照我的步驟來,應(yīng)當是不會報錯的,但如果漏掉了某些步驟,可能會發(fā)生命令報錯。
跳過密碼授權(quán)命令報錯
執(zhí)行 mysqld --console --skip-grant-tables --shared-memory
時窗口未卡主,且有 [ERROR]
這是由于沒有執(zhí)行我給的步驟 1“停止 MySQL 服務(wù)”,因此,在執(zhí)行 net stop [mysql服務(wù)名]
后,窗口就會卡主且不會有報錯了。
修改密碼時報錯
報錯:ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
這是由于沒有關(guān)閉“跳過密碼授權(quán)”窗口導致的,因此只需要關(guān)閉授權(quán)窗口即可。
ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’
這是由于關(guān)閉了 mysql 服務(wù)導致的,因此只需要通過 net start [ServiceName]
打開 Mysql 服務(wù)即可。
例如:
net start mysql57
2.MySQL 5.7.6-(不包括 5.7.6)
這里以 MySQL 5.7.5 作為示例。
打開 cmd,停止 MySQL 服務(wù),格式:net stop [服務(wù)名稱]
。我這里的服務(wù)名稱是 MySQL575
,你的可能是 mysql
,因為 mysql
是默認的服務(wù)名稱。
net stop mysql575
服務(wù)名稱查找方式:win + r
打開“運行”,輸入 services.msc
,查找你的 MySQL 服務(wù)名稱。
跳過密碼授權(quán)。
mysqld --console --skip-grant-tables --shared-memory
注意這個 mysqld
需要在環(huán)境變量下配置到 mysql 的 bin 目錄,或者直接在 bin 目錄下執(zhí)行該指令。
打開一個新的 cmd 窗口,輸入 mysql
可直接進行 mysql 管理。注意“跳過密碼授權(quán)”這個 cmd 窗口不要關(guān)閉。
清空密碼
UPDATE mysql.user SET password=”” WHERE user=“root”; exit;
接著,一定要關(guān)閉“跳出密碼授權(quán)”窗口,在新窗口啟動 mysql 服務(wù)并進入 mysql 管理。
# 1.啟動 mysql 服務(wù)。格式:net start [服務(wù)名稱] net start mysql575 # 2.進入 mysql,無密碼 mysql -uroot
修改密碼并刷新權(quán)限。
-- 1.修改密碼 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456'); -- 2.刷新權(quán)限 flush privileges; -- 3.退出 exit;
再次登錄。
mysql -uroot -p123456
3.MySQL 5.7.6+(包括 5.7.6)
這里以 MySQL 5.7.35 作為示例。
打開 cmd,停止 MySQL 服務(wù),格式:net stop [服務(wù)名稱]
。我這里的服務(wù)名稱是 MySQL57
,你的可能是 mysql
,因為 mysql
是默認的服務(wù)名稱。
net stop mysql57
服務(wù)名稱查找方式:win + r
打開“運行”,輸入 services.msc
,查找你的 MySQL 服務(wù)名稱。
跳過密碼授權(quán)。
mysqld --console --skip-grant-tables --shared-memory
注意這個 mysqld
需要在環(huán)境變量下配置到 mysql 的 bin 目錄,或者直接在 bin 目錄下執(zhí)行該指令。
打開一個新的 cmd 窗口,輸入 mysql
可直接進行 mysql 管理。注意“跳過密碼授權(quán)”這個 cmd 窗口不要關(guān)閉。
清空密碼
UPDATE mysql.user SET authentication_string=”” WHERE user=“root”; exit;
接著,一定要關(guān)閉“跳出密碼授權(quán)”窗口,在新窗口啟動 mysql 服務(wù)并進入 mysql 管理。
# 1.啟動 mysql 服務(wù)。格式:net start [服務(wù)名稱] net start mysql57 # 2.進入 mysql,無密碼 mysql -uroot
修改密碼并刷新權(quán)限。
-- 1.修改密碼 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY "123456"; -- 2.刷新權(quán)限 flush privileges; -- 3.退出 exit;
再次登錄。
mysql -uroot -p123456
4.MySQL 8.0
打開 cmd,停止 MySQL 服務(wù),格式:net stop [服務(wù)名稱]
。我這里的服務(wù)名稱是 MySQL80
,你的可能是 mysql
,因為 mysql
是默認的服務(wù)名稱。
net stop mysql80
服務(wù)名稱查找方式:win + r
打開“運行”,輸入 services.msc
,查找你的 MySQL 服務(wù)名稱。
跳過密碼授權(quán)。
mysqld --console --skip-grant-tables --shared-memory
注意這個 mysqld
需要在環(huán)境變量下配置到 mysql 的 bin 目錄,或者直接在 bin 目錄下執(zhí)行該指令。
打開一個新的 cmd 窗口,輸入 mysql
可直接進行 mysql 管理。注意“跳過密碼授權(quán)”這個 cmd 窗口不要關(guān)閉。
清空密碼
UPDATE mysql.user SET authentication_string=”” WHERE user=“root”; exit;
接著,一定要關(guān)閉“跳出密碼授權(quán)”窗口,在新窗口啟動 mysql 服務(wù)并進入 mysql 管理。
# 1.啟動 mysql 服務(wù)。格式:net start [服務(wù)名稱] net start mysql80 # 2.進入 mysql,無密碼 mysql -uroot
修改密碼并刷新權(quán)限。
-- 1.修改密碼 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY "123456"; -- 2.刷新權(quán)限 flush privileges; -- 3.退出 exit;
再次登錄。
mysql -uroot -p123456
以上就是mysql忘記root密碼的解決辦法(針對不同mysql版本)的詳細內(nèi)容,更多關(guān)于mysql忘記root密碼的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
如何把本地mysql遷移到服務(wù)器數(shù)據(jù)庫
這篇文章主要介紹了如何把本地mysql遷移到服務(wù)器數(shù)據(jù)庫,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-11-11MySQL操作數(shù)據(jù)庫和表的常用命令新手教程
這篇文章主要介紹了MySQL操作數(shù)據(jù)庫和表的常用命令新手教程,本文總結(jié)的命令都是控制mysql必須掌握的、常用的命令,需要的朋友可以參考下2014-09-09探究MySQL中索引和提交頻率對InnoDB表寫入速度的影響
這篇文章主要介紹了MySQL中索引和提交頻率對InnoDB表寫入速度的影響,作者通過實際測試運行時間的對比來驗證,需要的朋友可以參考下2015-05-05解決xmapp啟動mysql出現(xiàn)Error: MySQL shutdown unexpec
這篇文章主要介紹了解決xmapp啟動mysql出現(xiàn)Error: MySQL shutdown unexpectedly.問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06MySQL 5.5/5.6/5.7及以上版本安裝包安裝時如何選擇安裝路徑
最近mysql官方網(wǎng)站的安裝包從5.5-5.7起都是新版的安裝界面,各種環(huán)境要求支持,看樣子以后老點的系統(tǒng)安裝都夠費勁的了,這里腳本之家小編特為大家整理一下安裝步驟與方法2016-04-04MySQL遷移KingbaseESV8R2的實現(xiàn)步驟
本文主要介紹了MySQL遷移KingbaseESV8R2的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02保證MySQL與Redis數(shù)據(jù)一致性的6種實現(xiàn)方案
這篇文章將聚焦在一個非常重要且復雜的問題上:MySQL與Redis數(shù)據(jù)的一致性,當我們在應(yīng)用中同時使用MySQL和Redis時,如何保證兩者的數(shù)據(jù)一致性呢?下面就來分享幾種實用的解決方案,需要的朋友可以參考下2024-03-03