解決方案:
- 停止服務(wù):停止MySQL服務(wù);
- 跳過驗(yàn)證:修改MySQL安裝目錄下的my.ini配置文件,使登錄時(shí)跳過權(quán)限檢查;
- 修改密碼:?jiǎn)?dòng)MySQL服務(wù),登錄MySQL,此時(shí)提示輸入密碼,輸入任意密碼回車即可進(jìn)入MySQL。然后通過SQL語句修改root用戶的密碼;
- 重啟服務(wù):將my.ini文件中加入的跳過權(quán)限語句刪除或加#號(hào)注釋。重啟服務(wù),使用修改后的密碼登錄即可。
Windows系統(tǒng)具體操作:
1、 停止服務(wù):
方法1:使用dos命令net stop mysql即可;使用這種方式MySQL服務(wù)必須為安裝的服務(wù),否則會(huì)出現(xiàn)服務(wù)名無效,這時(shí)可以使用第二種方法。
方法2:進(jìn)入【控制面板】-->【管理工具】 -->【服務(wù)】,找到MySQL服務(wù),點(diǎn)擊左邊的停止。
2、 跳過驗(yàn)證:
進(jìn)入MySQL的安裝路徑(以默認(rèn)安裝路徑為例)C:\Program Files\MySQL\MySQL Server 5.1\,找到my.ini配置文件(這些文件記錄MySQL的常規(guī)參數(shù),每次啟動(dòng)服務(wù)都會(huì)先加載此文件),在my.ini配置文件的最后一行加入skip_grant_tables,此語句可以忽略登錄檢查。
3、 修改密碼:
啟動(dòng)MySQL服務(wù),進(jìn)入dos環(huán)境,輸入mysql -u root -p登錄MySQL(如果安裝時(shí)沒有勾選添加
環(huán)境變量,需要先使用cd命令進(jìn)入MySQL安裝目錄),此時(shí)提示輸入密碼,輸入任意密碼回車即可進(jìn)入MySQL,出現(xiàn)mysql>控制符,此時(shí)表示已經(jīng)成功登錄MySQL;
mysql> USE mysql (將數(shù)據(jù)庫切換至mysql庫中)
mysql> UPDATE user SET password=PASSWORD('newpswd') WHERE user='root' (修改密碼)
password函數(shù)為MySQL內(nèi)部函數(shù),其中newpswd為修改后的新密碼。
4、 重啟服務(wù):
將my.ini文件中加入的跳過權(quán)限語句刪除或加#號(hào)注釋。重啟服務(wù),使用修改后的密碼登錄即可。
Linux系統(tǒng)具體操作:
1、 停止服務(wù):
執(zhí)行:
/etc/init.d/mysql stop
(你的機(jī)器不一定是/etc/init.d/mysql也可能是/etc/init.d/mysqld,可以通過find命令查找)。
2、 跳過驗(yàn)證:
執(zhí)行:
/usr/local/mysql/bin/mysqld_safe--skip-grant-tables >/dev/null 2>&1 &
(如果mysqld_safe的位置如果和不一樣需要修改,如果不清楚可以用find命令查找)。
find / -name mysqld_safe
3、 修改密碼:
執(zhí)行:
mysql> USE mysql (將數(shù)據(jù)庫切換至mysql庫中)
mysql> UPDATE user SET password=PASSWORD('newpswd') WHERE user='root' (修改密碼)
/usr/local/mysql/bin/mysql -u root mysql (登錄mysql)
mysql> USE mysql; (將數(shù)據(jù)庫切換至mysql庫中)
mysql> UPDATE user SET password=PASSWORD('newpswd') WHERE user='root'; (修改密碼)
mysql>flush privileges; ( 刷新MySQL權(quán)限相關(guān)的表)
mysql>exit; (退出MySQL)
4、 重啟服務(wù):
執(zhí)行:
service mysqld restart (/etc/init.d/mysql restart / mysql restart)