MySQL root用戶忘記密碼解決方案(安全模式,修改密碼的三種方式)
來源:程序員人生 發布時間:2014-12-14 08:58:12 閱讀次數:4376次
1.關閉正在運行的MySQL
2.啟動MySQL的安全模式,命令以下:
mysqld --skip-grant-tables
or
mysqld-nd --skip-grant-tables
3.使用root用戶[免密碼]登陸MySQL
mysql -u root -p
輸入密碼時,直接回車
4.選擇MySQL系統庫use mysql
5.查看當前系統用戶root的密碼
select user,host,password from user where user="root"
查看的password是經過加密的,若以后想要恢復當前密碼可以先運行這條命令備份1下當前的密碼
6.修改root用戶的密碼
update user set password=PASSWORD("your_password") where user="root"
這里是直接修改了root用戶在所有登陸位置的密碼,若你僅僅只想修改root在某1處的密碼,可以在上1條命令中增加1個限定條件host='somewhere'
比如,下面的命令修改了root用戶在本機localhost的登陸密碼
update user set password=PASSWORD("your_password") where user="root" and host="localhost"
上面的操作是直接對MySQL系統庫mysql進行修改,安全性較低,1旦出現誤操作,本錢高,難恢復,并且僅限于對mysql庫有UPDATE權限的用戶,MySQL本身為我們提供了1種更加簡便的操作方式,在此作1下簡單的介紹
修改當前登陸用戶的密碼,使用SELECT CURRENT_USER();可查看當前登陸用戶
SET PASSWORD = PASSWORD('cleartext password');
修改bob用戶在%.example.org位置上的登陸密碼,注意這里的host地址%.example.org是必須要存在的
SET PASSWORD FOR 'bob'@'%.example.org' = PASSWORD('cleartext password');
固然我們也能夠通過GRANT的方式修改密碼
GRANT USAGE ON *.* TO 'bob'@'%.example.org' IDENTIFIED BY 'cleartext password';
關于修改密碼的詳細內容還是請見官方文檔(5.6)
http://dev.mysql.com/doc/refman/5.6/en/set-password.html
7.刷新1下系統的權限
flush privileges;
8.關閉MySQL的安全模式,重新啟動便可
注:
在第2步,啟動安全模式的時候,命令行可能會1直處于掛起狀態,此時Ctrl+c也不能終止運行,這時候候只要通過netstat -ao查看MySQL端口是不是處于監聽狀態,如是即代表MySQL已進入了安全模式,出現這類現象是主要由于MySQL不提倡安全模式長時間運行
使用mysql命令連接數據庫時可能會出現以下毛病:
ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)
網上關于此毛病的描寫有很多,我們知道MySQL的默許端口是3306,當以其他端口啟動服務時,使用mysql命令又沒有指定對應的端口,固然就沒法連接Server啦
附加信息:
MySQL官方文檔(5.5) http://dev.mysql.com/doc/refman/5.5/en/index.html
MySQL官方文檔(5.6) http://dev.mysql.com/doc/refman/5.6/en/index.html
以此類推...
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈