MySQL有時候忘記了root密碼是一件傷感的事,這種情況下,如何重置root的密碼呢?
找到並編輯mysql的my.ini配置文件,在mysqld節點中添加上skip-grant-table. 如下:
# These let you safely reset the lost root password. skip-grant-table
保存好修改,重啟mysql服務。
現在就能不需要root密碼的情況下連接上數據庫。然後執行下面的更新:
USE mysql; UPDATE USER SET password = password('yournewpasswordhere') WHERE USER = 'root' AND host = 'localhost';
這樣root密碼就修改好了,這個時候,將my.ini中的skip-grant-table刪除,再重啟mysql service
下面介紹Windows 和 Linux 下的密碼重置方法。
windows:
1.以系統管理員身份登陸系統。
2.打開cmd-----net start 查看mysql是否啟動。啟動的話就停止net stop mysql.
3.我的mysql安裝在d:\usr\local\mysql4\bin下。
4.跳過權限檢查啟動mysql.
d:\usr\local\mysql\bin\mysqld-nt --skip-grant-tables
5.重新打開cmd。進到d:\usr\local\mysql4\bin下:
d:\usr\local\mysql\bin\mysqladmin -u root flush-privileges password "newpassword"
d:\usr\local\mysql\bin\mysqladmin -u root -p shutdown 這句提示你重新輸密碼。
6.在cmd裡net start mysql
7.搞定了。
Linux:
MySQL root密碼的恢復方法之一
如果忘記了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,就可以使用新密碼登錄了。
MySQLroot密碼的恢復方法二
有可能你的系統沒有 safe_MySQLd 程序(比如我現在用的 ubuntu操作系統, apt-get安裝的MySQL) , 下面方法可以恢復
1. 停止MySQLd;
sudo /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 登錄了。