MySQL忘記root密碼的解決方法
Linux下的解決方法:
www.2cto.com
一. MySQL密碼的恢復方法之一
如果忘記了MySQL的root密碼,可以用以下方法重新設置:
1. KILL掉系統裡的MySQL進程;
killall -TERM mysqld
2. 用以下命令啟動MySQL,以不檢查權限的方式啟動;
safe_mysqld --skip-grant-tables &
3. 然後用空密碼方式使用root用戶登錄 MySQL;
mysql -u root
4. 修改root用戶的密碼;
mysql> update mysql.user set password=PASSWORD('新密碼') where User='root';
mysql> flush privileges;
mysql> quit
重新啟動MySQL,就可以使用新密碼登錄了。
二. MySQL密碼的恢復方法二
有可能你的系統沒有 safe_mysqld 程序(比如我現在用的 ubuntu操作系統, apt-get安裝的mysql) , 下面方法可以恢復
1. 停止mysqld;
/etc/init.d/mysql stop
(您可能有其它的方法,總之停止mysqld的運行就可以了)
2. 用以下命令啟動MySQL,以不檢查權限的方式啟動;
mysqld --skip-grant-tables &
3. 然後用空密碼方式使用root用戶登錄 MySQL;
mysql -u root
4. 修改root用戶的密碼;
mysql> update mysql.user set password=PASSWORD('newpassword') where User='root';
mysql> flush privileges;
mysql> quit
重新啟動MySQL
/etc/init.d/mysql restart
就可以使用新密碼 newpassword 登錄了。
www.2cto.com
Windows下的解決方法:
1、編輯MySQL的配置文件:my.ini
一般在MySQL安裝目錄下有my.ini即MySQL的配置文件。
在此配置文件的最後添加如下一行:
skip-grant-tables
保存退出編輯。
2、然後重啟MySQL服務
在命令行下執行:
net stop MySQL
net start MySQL
3、設置新的ROOT密碼
然後再在命令行下執行:
MySQL -u root -p MySQL或mysql -u root -p
直接回車無需密碼即可進入數據庫了。
此時,在命令行下執行 use mysql;
現在我們執行如下語句把root密碼更新為:
update user set password=password("root") where user="root";
(注意:此時不用使用mysqladmin -u root -p password '你的新密碼'這條命令修改密碼,因為'skip-grant-tables'配置,
不信的話,你可以試用一下,它肯定會報如下所示的錯誤:
F:\Documents and Settings\long>mysqladmin -u root -p password 'root'
Enter password:
Warning: single quotes were not trimmed from the password by your command
line client, as you might have expected.
mysqladmin:
You cannot use 'password' command as mysqld runs
with grant tables disabled (was started with --skip-grant-tables).
Use: "mysqladmin flush-privileges password '*'" instead)
exit 退出MySQL。
4、還原配置文件並重啟服務
www.2cto.com
然後修改MySQL配置文件把剛才添加的那一行'skip-grant-tables'刪除。
再次重起MySQL服務,密碼修改完畢。
用新密碼root試一下吧,又能登入重新進入mysql了.