標籤:
方案1、通過跳過授權的方式
1.修改MySQL的登入設定:
# vi /etc/my.cnf
在[mysqld]的中加上:skip-grant-tables 。
2.重新啟動mysqld
# ubuntuservice mysqld restart
3.登入並修改MySQL的root密碼
mysql> USE mysql; mysql> UPDATE user SET Password = password ( ‘new-password‘ ) WHERE User = ‘root‘ ; mysql> flush privileges; mysql> exit
4.將MySQL的登入設定修改回來
# vi /etc/my.cnf
將剛才在[mysqld]的段中加上的skip-grant-tables刪除 儲存並且退出vi。
5.重新啟動mysqld
# ubuntuservice mysqld restart
方案2:
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,就可以使用新密碼登入了
方案3:
有可能你的系統沒有 safe_mysqld 程式(比如我現在用的 ubuntu作業系統, apt-get安裝的mysql) , 下面方法可以恢複
1. 停止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
mysql忘記密碼的處理方式(整理非原創)