windows下重置mysql的root密碼方法介紹
今天發(fā)現(xiàn) WordPress 連接不上數(shù)據(jù)庫(kù),登錄 window server 服務(wù)器查看,所有服務(wù)均運(yùn)行正常。
使用 root 賬號(hào)登錄 mysql 數(shù)據(jù)庫(kù),結(jié)果提示密碼不匹配。我突然意識(shí)到,服務(wù)器可能遭受到 SQL注入 攻擊了……
至于事故發(fā)生的原因和之后所做的補(bǔ)救措施,以后有機(jī)會(huì)我會(huì)聊一聊的。這里我主要講一下 mysql 用戶密碼的重置步驟。
重置 root 密碼
在忘記 root 密碼的情況下,可以進(jìn)入 mysql 的安全模式,重置 root 密碼。
1. 停止 MySQL 服務(wù)
打開(kāi)命令提示符窗口,輸入 net stop mysql 關(guān)閉 MySQL 服務(wù)。
C:\Users\Administrator>net stop mysql57 MySQL57 服務(wù)正在停止.. MySQL57 服務(wù)已成功停止。
↑ 服務(wù)名稱不一定都是 mysql,比如我的就是 mysql57,57代表版本號(hào)為5.7
當(dāng)然你也可以通過(guò)計(jì)算機(jī)管理面板關(guān)閉 MySQL 服務(wù)。
2. 切換到 bin 目錄
在命令提示符窗口中,通過(guò) cd 命令切換到 mysql 安裝目錄下的 bin 目錄。
C:\Users\Administrator> cd C:\Program Files\MySQL\MySQL Server 5.7\bin C:\Program Files\MySQL\MySQL Server 5.7\bin>
↑ 默認(rèn)安裝目錄為 C:\Program Files\MySQL\MySQL Server
3. 進(jìn)入安全模式
在 bin 目錄下輸入 mysqld --skip-grant-tables
,跳過(guò)權(quán)限檢查啟動(dòng) mysql。
如果你配置了 my.ini 文件,則需要將其引入: mysqld --defaults-file="../my.ini" --skip-grant-tables
[mysqld] basedir = "C:\ProgramData\MySQL\MySQL Server 5.7" datadir = "C:\ProgramData\MySQL\MySQL Server 5.7\Data"
↑ 我在 my.ini 文件中指定了數(shù)據(jù)的存放路徑,如果不引入配置文件,則會(huì)提示 No such file or directory 錯(cuò)誤。
4. 重置賬戶密碼
打開(kāi)另一個(gè)命令提示符窗口(別關(guān)閉安全模式窗口),同樣切換到 mysql \ bin 目錄,輸入 mysql 跳過(guò)權(quán)限驗(yàn)證連接數(shù)據(jù)庫(kù)。
C:\Program Files\MySQL\MySQL Server 5.7\bin>mysql Server version: 5.7.16 MySQL Community Server (GPL) Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
↑ 也可以指定連接參數(shù) mysql -u <用戶名> -p <密碼> -h <連接地址> -P <端口號(hào)> -D <數(shù)據(jù)庫(kù)>
執(zhí)行 update mysql.user set authentication_string="" where user="root"; 重置 root 用戶的密碼(5.7 之前為 password 字段)。
mysql> update mysql.user set authentication_string="" where user="root"; Query OK, 1 row affected (0.00 sec) mysql> select user,authentication_string from mysql.user\G *************************** 1. row *************************** user: root authentication_string: *************************** 2. row *************************** user: mysql.sys authentication_string: *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE 2 rows in set (0.00 sec)
↑ root 用戶的 authentication_string 字段已經(jīng)被清空了
5. 刷新權(quán)限表
執(zhí)行 flush privileges; 命令刷新權(quán)限表,密碼已經(jīng)重置完成,輸入 quit 退出。
mysql> flush privileges; Query OK, 0 rows affected (0.02 sec) mysql> quit Bye
關(guān)閉所有命令提示符窗口,通過(guò)任務(wù)管理器結(jié)束 mysqld.exe 進(jìn)程。重啟 MySQL 服務(wù),之后就可以直接登錄 root 賬號(hào)了。
修改 root 密碼
出于安全考慮,root 密碼不宜為空,所以需要在密碼重置之后,再重新設(shè)置一個(gè)密碼。
方法一:SET PASSWORD
SET PASSWORD FOR "username"=PASSWORD("new password");
以 root 身份登錄 mysql,再使用 set password 命令修改密碼:
mysql> set password for root@localhost = password("pswd"); Query OK, 0 rows affected, 1 warning (0.00 sec)
方法二:mysqladmin
mysqladmin -u "username" -p password "new password"
執(zhí)行該命名之后會(huì)提示輸入原密碼,輸入正確后即可修改。
C:\Program Files\MySQL\MySQL Server 5.7\bin> mysqladmin -u root -p password pswd Enter password: **** mysqladmin: [Warning] Using a password on the command line interface can be insecure. Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
方法三:UPDATE TABLE
UPDATE mysql.user SET authentication_string=PASSWORD("new password") WHERE user="username";
在重置 root 密碼的同時(shí),也可以設(shè)置默認(rèn)密碼。不過(guò)密碼不能為明文,必須使用 password() 函數(shù)加密。
mysql> update mysql.user set authentication_string=password("pswd") where user="root"; Query OK, 1 row affected, 1 warning (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.01 sec)
總結(jié)
以上就是本文關(guān)于windows下重置mysql的root密碼方法介紹的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:
MySQL數(shù)據(jù)庫(kù)設(shè)計(jì)之利用Python操作Schema方法詳解
如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
相關(guān)文章
MySQL慢查詢優(yōu)化之慢查詢?nèi)罩痉治龅膶?shí)例教程
這篇文章主要介紹了MySQL慢查詢?nèi)罩痉治龅膶?shí)例教程,通過(guò)設(shè)置參數(shù)從慢查詢?nèi)罩鹃_(kāi)始分析性能問(wèn)題的原因,需要的朋友可以參考下2015-11-11MySQL生產(chǎn)庫(kù)Insert了2次同樣的記錄但是主鍵ID是不一樣的問(wèn)題的分析過(guò)程
這篇文章主要介紹了MySQL生產(chǎn)庫(kù)Insert了2次同樣的記錄但是主鍵ID是不一樣的問(wèn)題的分析過(guò)程,需要的朋友可以參考下2014-02-02MySQL對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)進(jìn)行復(fù)制的基本過(guò)程詳解
這篇文章主要介紹了MySQL對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)進(jìn)行復(fù)制的基本過(guò)程,解讀了Slave的一些相關(guān)配置,需要的朋友可以參考下2015-11-11MySQL中的LOCATE和POSITION函數(shù)使用方法
不常用:MySQL中的LOCATE和POSITION函數(shù)2010-02-02SQL中where語(yǔ)句的用法及實(shí)例代碼(條件查詢)
WHERE如需有條件地從表中選取數(shù)據(jù),可將WHERE 子句添加到SELECT語(yǔ)句,下面這篇文章主要給大家介紹了關(guān)于SQL中where語(yǔ)句的用法及實(shí)例(條件查詢)的相關(guān)資料,需要的朋友可以參考下2022-10-10Windows 10 與 MySQL 5.5 安裝使用及免安裝使用詳細(xì)教程(圖文)
本文介紹Windows 10環(huán)境下,MySQL 5.5的安裝使用及免安裝使用教程,本文提供了資源下載及相關(guān)問(wèn)題解決方案,非常不錯(cuò),需要的朋友參考下2017-07-07MySQL同步數(shù)據(jù)Replication的實(shí)現(xiàn)步驟
本文主要介紹了MySQL同步數(shù)據(jù)Replication的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03MySQL系列之十五 MySQL常用配置和性能壓力測(cè)試
今天給大家?guī)?lái)一篇教程關(guān)于MySQL常用配置和性能壓力測(cè)試的知識(shí),文中配置參數(shù)以32內(nèi)存的服務(wù)器為例,通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-07-07