今天在嘗試初始化一個WEB應用的時候,發現其連接不上MySQL,從Traceback看到使用的默認密碼為‘YES’。沒轍,居然嘗試把MySQL的密碼也改成'YES',瘋了...我是瘋子。任意鍵在哪兒呢...
USE MySQL
UPDATE uesr SET passWord='YES' where user='root' AND host='localhost';
FLUSH PRIVILEGES;
退出控制台後就再進不去了。
MySQL -u root -p
MySQL -h localhost -u root -p
都不行,出現錯誤:
"Host 'localhost' is not allowed to connect to this MySQL Server."
二、方法
首先停止MySQL服務:
sc stop MySQL
然後:
MySQLd --skip-grant-tables
另開一個終端,繼續
MySQLcheck --check-upgrade --all-databases --auto-repair
然後再輸入
MySQL
就可以進入MySQL控制台了。這樣進去以後使用SELECT語句會發現密碼使用的是明文:'YES',哈哈,我真是個瘋子。
三、問題
以上進去控制台後並不能執行賬戶維護工作。正確的方法為:
MySQL -u root
然後使用以下語句將密碼還原為 root 的 HASH 值:
UPDATE uesr SET password=PASSWord('YES') where user='root' AND host='localhost';
然後,MySQLd --skip-grant-tables 這個命令似乎只可以在本地運行。
如果mysql服務無法正常停止,使用命令:MySQLadmin -u root shutdown