Mysql忘記root使用者

2021-09-01 10:40:23 字數 1358 閱讀 1168

修改口令必須要連線伺服器才能修改口令,如果不知道root口令,就只能先強行關停伺服器,然後在不適用許可權表驗證的請款下重新啟動伺服器。

一、關停伺服器

如果是在linux系統下:

①、以系統的root使用者登陸,進入終端;

②、殺掉mysql程序

方法1、killall mysqld

方法2、ps -aux  

檢視所有的程序,找到mysql的程序pid,  然後執行命令:

kill pid

(pid是mysql的程序號)

如果伺服器受到干擾和對正常終止訊號無響應,則可使用kill -9強制終止伺服器,命令如下:

kill -9 pid

注意,kill -9是最後不得已的手段,因為記憶體中可能有未更新的修改,而且有資料表不一致的危險。

如果使用mysql_safe啟動伺服器,將會監視該伺服器是否異常終止。如果利用kill -9 終止伺服器,mysql_safe將會使它立即重啟。為了避免這點,要先確定mysqld_safe程序的pid,並在結束mysqld後首先結束該程序。

如果在windows下,即使不知道扣扣了也可以正常關停伺服器,可以使用服務管理程式或者使用以下命令:

net stop mysql

如果正常情況無法關閉,可以使用任務管理器強制終止伺服器,這是最後不得已的手段。

二、用---skip_grant_tables選項重新啟動伺服器,

如果在linux下(windows下基本類似):

/usr/local/mysql/bin/mysqld_safe --skip-grant-tables,

然後執行以下命令進入mysql,

/usr/local/mysql/bin/mysql

接著切換到mysql 資料庫,

mysql> 

use mysql

禁止使用驗證鏈結用的許可權**,因此可以不用口令,二用所有許可權進行連線,但是這會讓伺服器完全開放,其他人也可以以同樣的方法鏈結。因此連線上 後,立即發出fluse privileges 語句:

mysql> 

fluse privileges;

flush告知伺服器要重新讀取許可權表,使用**進行訪問控制。雖然你仍然保持連線,但伺服器需要用許可權表驗證其他客戶進行任何連線。flush語句還重新啟動set password語句,因為該語句在伺服器不用許可權表時被禁用。在重新載入該錶後,就可以用set password或update改變root口令,如

mysql> 

set password for 'root'@'localhost' = password('123456);

三、在修改root口令之後,關閉伺服器並按照正常過程重新啟動它,然後就可以使用新的口令以root使用者的身份登入了。

MySQL忘記root使用者密碼

忘記root密碼 一 init file方式 推薦的方式 修改my.cnf,新增引數 mysqld init file tmp init.sql 建立init.sql,並編輯 可以直接將修改密碼的sql重定向到init.sql檔案中 echo alter user root localhost id...

MYSQL中root使用者忘記密碼

一 mysql中root使用者忘記密碼找回方式 1 先關閉所有正在執行的mysqld程序 service mysqld stop 2 使用跳過授權表引數啟動mysql mysqld safe skip grant tables user mysql 3 為root localhost設定新密碼 my...

linux忘記mysql的root使用者密碼

linux系統如果忘記了 mysql 的 root 密碼,可以用以下方法重新設定 1.kill掉系統裡的mysql程序,ps ef grep mysqld 檢視mysql程序id 2.用以下命令啟動mysql,以不檢查許可權的方式啟動 mysqld safe skip grant tables 3....