本文主要是針對mysql重置密碼過程中出現“mysqld不是內部命令或外部命令”的問題而寫的。
網上有很多關於mysql忘記密碼了如何找回的文章,但是很多說的都不夠詳細,特別是還要用到DOS命令,可能這對於很大一部分剛接觸這方面的朋友來說還是個難題。本文針對網上教程中有難點和疑惑的步驟進行再次剖析,如果能讓你少走一步彎路,那我的目的也就達到了。下面是網上流傳最多的方法,原作者無從知曉,這里表示感謝。
- 關閉正在運行的MySQL。
- 打開DOS窗口,轉到mysqlbin目錄。
- 輸入mysqld --skip-grant-tables回車。如果沒有出現提示信息,那就對了。
- 再開一個DOS窗口(因為剛才那個DOS窗口已經不能動了),轉到mysqlbin目錄。
- 輸入mysql回車,如果成功,將出現MySQL提示符 >
- 連接權限數據庫>use mysql; (>是本來就有的提示符,別忘了最后的分號)
- 改密碼:> update user set password=password("123456") where user="root"; (別忘了最后的分號)
- 刷新權限(必須的步驟)>flush privileges;
- 退出 > q
- 注銷系統,再進入,開MySQL,使用用戶名root和剛才設置的新密碼123456登陸。
主要是第二步:“打開DOS窗口,轉到mysqlbin目錄。”
可能有童鞋不知道這一步如何操作
具體就是:使用win+r鍵,打開運行,鍵入cmd敲回車就到了DOS窗口。然后找到mysql/bin所在的目錄,我是使用APMserv搭建的服務器環境,程序就安裝在c盤根目錄,所以我的目錄是在C:APMServ5.2.6APMServ5.2.6MySQL5.1bin。如果你是使用phpnow搭建的環境,那么你的安裝目錄應該是你自己指定的,找到它,復制這個地址,然后回到cmd里面,輸入cd (cd后面有一個空格),然后鼠標右鍵粘貼剛才復制的路徑,按回車。就轉到mysql/bin目錄了。
或者,更簡單的,在mysql安裝目錄下新建一個文本文檔,輸入
cmd.exe
保存,然后將該文檔的后綴名改為.bat批處理文件,雙擊打開就直接切換到該目錄了。 然后就到了問題的所在了,這時我們按照這一步
“輸入mysqld --skip-grant-tables回車。如果沒有出現提示信息,那就對了”
輸入mysqld --skip-grant-tables之后就提示“mysqld不是內部命令或外部命令”,是什么原因呢?如果你碰到這個提示的話,將命令改成mysqld-nt --skip-grant-tables之后就可以搞定了。
好了,問題也解決了,其他的按照原教程的步驟來就ok了,需要注意的是下面三個步驟中的命令最后的分號都不能忘了。
連接權限數據庫>use mysql;
改密碼:> update user set password=password("520") where user="root";
刷新權限(必須的步驟)>flush privileges;
總結:發現出現這個問題是因為使用的mysql版本過低的原因,因為后來的版本更新之后就沒有mysqld-nt.exe這個文件了,也就是只有網上流傳的教程中的mysqld.exe了。多以,如果你安裝新版的mysql就不會出現這個問題了。
From:http://www.augsky.com/78.html