修改口令必須要連線伺服器才能修改口令,如果不知道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....