Linux下忘記MySQL的root密碼的解決方法

2021-09-07 06:52:22 字數 2614 閱讀 5224

恢復方法之一

1、首先確認伺服器出於安全的狀態,也就是沒有人能夠任意地連線mysql資料庫。 因為在重新設定mysql的root密碼的期間,mysql資料庫完全出於沒有密碼保護的 狀態下,其他的使用者也可以任意地登入和修改mysql的資訊。可以採用將mysql對外的埠封閉,並且停止apache以及所有的使用者程序的方法實現伺服器的準安全狀態。最安全的狀態是到伺服器的console上面操作,並且拔掉網線。

2、修改mysql的登入設定;

vim /etc/my.cnf
在[mysqld]的段中加上一句:skip-grant-tables 儲存並且退出vim。

3.重新啟動mysqld;

service mysqld restart # 或 /etc/init.d/mysqld restart
4、登入並修改mysql的root密碼;

mysql> use mysql ; 

mysql> update user set password = password ('new-password') where user = 'root' ;

mysql> flush privileges ;

mysql> quit

5、將mysql的登入設定修改回來;

vim /etc/my.cnf
將剛才在[mysqld]的段中加上的skip-grant-tables刪除;

儲存並且退出vim。

6、重新啟動mysqld;

service mysqld restart  # 或 /etc/init.d/mysqld restart
7、恢復伺服器的正常工作狀態;

將步驟一中的操作逆向操作。恢復伺服器的工作狀態。

恢復方法之二

如果忘記了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,就可以使用新密碼登入了。

恢復方法三(推薦)

有可能你的系統沒有 safe_mysqld 程式(比如我現在用的 ubuntu作業系統, apt-get安裝的mysql) , 下面方法可以恢復

1、停止mysqld; 

service mysqld stop  # 或 /etc/init.d/mysqld stop
(您可能有其它的方法,總之停止mysqld的執行就可以了)

2、用以下命令啟動mysql,以不檢查許可權的方式啟動; 

/usr/local/mysql/bin/mysqld --skip-grant-tables &
3、然後用空密碼方式使用root使用者登入 mysql; 

/usr/local/mysql/bin/mysql -u root
4、修改root使用者的密碼; 

mysql> update mysql.user set password=password('newpassword') where user='root'; 

mysql> flush privileges;

mysql> quit;

重新啟動mysql

servcie mysqld restart  # 或 /etc/init.d/mysql restart
就可以使用新密碼 newpassword 登入了。

參考:

實踐心得:

不知怎麼回事,當使用命令

update mysql.user set password=password('snsgou$123456') where user='root';
設定root秘密為 snsgou$123456 時,該密碼始終是 登入失敗!

當設定成 123456 這樣純數字密碼時,登入成功!

隨後的解決方案/技巧:

先把root密碼設定成比較簡單的純數字的,如 123456,然後再通過 phpmyadmin工具把root的密碼設定成稍複雜點的密碼!大功告成!

phpmyadmin返回的 sql語句為:

set password for 'root'@'localhost' = password( '*********' )
現在知道才 修改密碼後登入失敗的原因:

重啟mysql服務後新密碼生效!

linux 下mysql忘記密碼

1 首先確認伺服器出於安全的狀態,也就是沒有人能夠任意地連線mysql資料庫。因為在重新設定mysql的root密碼的期間,mysql資料庫完全出於沒有密碼保護的 狀態下,其他的使用者也可以任意地登入和修改mysql的資訊。可以採用將mysql對 外的埠封閉,並且停止apache以及所有的使用者程序...

Linux下Mysql忘記密碼

確認只有你能登入這台機器,因為過程中mysql出於無密碼登入狀態,任何有這台機器許可權的人都可能進來搞破壞,最好的做法就是拔掉網線。root centos6 vi etc my.cnf mysqld skip grant tables default character set utf8 datad...

linux下mysql忘記密碼

有可能你的系統沒有 safe mysqld 程式 比如我現在用的 ubuntu作業系統,apt get安裝的mysql 下面方法可以恢復 1.停止mysqld sudo etc init.d mysql stop 或者service mysqld stop 2.用以下命令啟動mysql,以不檢查許可...