如果你忘記了MySQL的root用戶的口令,你可以用下列過程恢復它。
kill `cat /MySQL-data-directory/hostname.pid`
使用--skip-grant-tables選項重啟MySQLd。
用mysql -h hostname MySQL連接MySQLd服務器並且用一條GRANT命令改變口令。也可以用MySQLadmin -h hostname -u user password 'new passWord' 進行。
這是從baidu,google上能搜索到的,其實也是MySQL手冊中(8.9 怎樣重新設置一個忘記的口令),所提到了,但我這次在Windows 下卻失敗了...
如果你忘記了MySQL的root用戶的口令,你可以用下列過程恢復它。
kill(不是kill -9)到MySQLd服務器來關閉MySQLd服務器。pid 被保存在一個.pid文件中,通常在MySQL數據庫目錄中:kill `cat /MySQL-data-directory/hostname.pid`
你必須是一個UNIX root用戶或運行服務器的相同用戶做這個。
--skip-grant-tables選項重啟MySQLd。
mysql -h hostname MySQL連接MySQLd服務器並且用一條GRANT命令改變口令。見7.26 GRANT和REVOKE句法。你也可以用MySQLadmin -h hostname -u user password 'new passWord' 進行。
MySQLadmin -h hostname flush-privileges或用SQL命令FLUSH PRIVILEGES來裝載權限表
這是從baidu,google上能搜索到的,其實也是MySQL手冊中(8.9 怎樣重新設置一個忘記的口令),所提到了,但我這次在Windows 下卻失敗了...
因為我只有一個用戶:select user,host from user時
| root | localhost |
後來我用update user set password=PASSWORD(''); 可是我用錯了,我用成了:update user set passWord='';
突然退出後,再登錄就無法登錄了,真是沒法啊.
按以上的步驟進行到mysqld --skip-grant-tables後無報錯,但mysql還是沒有啟動,所以無法用後面的MySQL登錄,因為此時3306都沒有打開.
無可賴何之下只得重裝它(教訓!).