MySQL忘記密碼怎麼辦-MySQL修改密碼(親測可用)
前言:
最近要用到本地的MySQL,結果把密碼忘記了。
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
然後參照網上的教程一頓操作,結果我自己都不知道是啥錯了:
ERROR 1130 (HY000): Host 'localhost' is not allowed to connect to this MySQL server
想着重新安裝MySQL比較麻煩,就自己看看能不能死馬當作活馬醫一下。
一、修改MySQL配置文件
想要在沒有密碼的狀態下修改MySQL的密碼,必須跳過MySQL登錄時的登錄密碼權限的驗證,取消掉這個驗證的方式如下:
1、找到MySQL的安裝文件中的my.ini文件
一般人應該能找到的吧,配置MySQL的環境變量中也有安裝目錄的,一般默認安裝目錄在C盤中。
2、修改my.ini
記事本方式打開my.ini,找到[mysqld]這一行,在下面加入下面兩條語句:
skip-name-resolve skip-grant-tables
注意[mysqld]是mysql+d(是小寫的L,不是大寫的i),最好直接複製,不然很容易輸錯。
記得ctrl+s保存好
二、重啟MySQL服務
1、以管理員身份運行命令行
2、在命令行中輸入停止MySQL服務命令:
net stop mysql
3、在命令行中輸入開始MySQL服務命令
net start mysql
三、登錄MySQL
在重啟MySQL服務後,通過命令登錄MySQL(不需要密碼)
mysql -uroot -p
回車後不用輸入密碼,直接回車就行。
四、修改密碼
進入到MySQL中,在命令行中輸入修改命令,修改密碼為123456
grant all privileges on *.* to root@'localhost' identified by '123456';
返回成功的話,密碼就修改成功了
但有時候也會報一個錯:
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
解決辦法:
刷新權限。輸入一下命令後回車一下,(可以多嘗試幾次)
flush privileges;
然後再重複第四步驟,修改密碼,
五、還原MySQL配置文件
1、第一步我們修改了MySQL的配置文件my.ini,在修改成功後我們需要將配置文件還原。
記得保存!!!
2、重啟MySQL服務
net stop mysql
net start mysql
3、使用新密碼,登錄成功