如果你忘記了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都沒有打開.
無可賴何之下只得重裝它(教訓!).