欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql忘記root密碼的解決辦法(針對不同mysql版本)

 更新時間:2024年06月26日 11:03:23   作者:是謝添啊  
這篇文章主要介紹了mysql忘記root密碼的解決辦法(針對不同mysql版本),文章通過代碼示例和圖文結(jié)合的方式給大家講解的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下

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 列中,該列使用的是新的身份驗證插件和密碼哈希算法。

MySQL 5.7.6 官方文檔原文

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]

image-20240625180832782

這是由于沒有執(zhí)行我給的步驟 1“停止 MySQL 服務(wù)”,因此,在執(zhí)行 net stop [mysql服務(wù)名] 后,窗口就會卡主且不會有報錯了。

image-20240625180734331

修改密碼時報錯

image-20240625181124106

報錯: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ù)名稱。

image-20240625174905477

跳過密碼授權(quán)。

mysqld --console --skip-grant-tables --shared-memory

注意這個 mysqld 需要在環(huán)境變量下配置到 mysql 的 bin 目錄,或者直接在 bin 目錄下執(zhí)行該指令。

image-20240625175028799

打開一個新的 cmd 窗口,輸入 mysql 可直接進行 mysql 管理。注意“跳過密碼授權(quán)”這個 cmd 窗口不要關(guān)閉。

image-20240625175821605

清空密碼

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

image-20240625175603370

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ù)名稱。

image-20240625164735532

跳過密碼授權(quán)。

mysqld --console --skip-grant-tables --shared-memory

注意這個 mysqld 需要在環(huán)境變量下配置到 mysql 的 bin 目錄,或者直接在 bin 目錄下執(zhí)行該指令。

image-20240625164943795

打開一個新的 cmd 窗口,輸入 mysql 可直接進行 mysql 管理。注意“跳過密碼授權(quán)”這個 cmd 窗口不要關(guān)閉。

image-20240625175953864

清空密碼

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

image-20240625180123964

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ù)名稱。

image-20240625171529375

跳過密碼授權(quán)。

mysqld --console --skip-grant-tables --shared-memory

注意這個 mysqld 需要在環(huán)境變量下配置到 mysql 的 bin 目錄,或者直接在 bin 目錄下執(zhí)行該指令。

image-20240625170538451

打開一個新的 cmd 窗口,輸入 mysql 可直接進行 mysql 管理。注意“跳過密碼授權(quán)”這個 cmd 窗口不要關(guān)閉。

image-20240625162953575

清空密碼

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

image-20240625163503623

以上就是mysql忘記root密碼的解決辦法(針對不同mysql版本)的詳細內(nèi)容,更多關(guān)于mysql忘記root密碼的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論