mysql忘記帳號密碼 解決辦法。

2021-07-07 02:01:38 字數 2944 閱讀 9428

首先關閉mysql

使用命令列啟動mysql(一般要找到mysql.ini檔案)

在windows上mysql.ini檔案可以通過檢視當前mysql程序引數檢視到,具體方法點此

在啟動mysql命令列最後加上:  --skip-grant-tables 引數

其他的一些方法:

1. 向mysqld server 傳送kill命令關掉mysqld server(不是 kill -9),存放程序id的檔案通常在mysql的資料庫所在的目錄中。 

killall -term mysqld 

你必須是unix的root使用者或者是你所執行的server上的同等使用者,才能執行這個操作。 

2. 使用`--skip-grant-tables' 引數來啟動 mysqld。 (linux下/usr/bin/safe_mysqld --skip-grant-tables , windows下c:\mysql\bin\mysqld --skip-grant-tables) 

3. 然後無密碼登入到mysqld server , 

>use mysql 

>update user set password=password("new_pass") where user="root"; 

>flush privileges; 

。你也可以這樣做:`mysqladmin -h hostname -u user password 'new password''。 

4. 載入許可權表: `mysqladmin -h hostname flush-privileges' ,或者使用 sql 命令`flush privileges'。 

5.killall -term mysqld 

6.用新密碼登陸 

修正一下:我在windows下的實際操作如下

1.關閉正在執行的mysql。 

2.開啟dos視窗,轉到mysql\bin目錄。 

3.輸入mysqld-nt --skip-grant-tables回車。如果沒有出現提示資訊,那就對了。 

4.再開乙個dos視窗(因為剛才那個dos視窗已經不能動了),轉到mysql\bin目錄。 

5.輸入mysql回車,如果成功,將出現mysql提示符 > 

6. 連線許可權資料庫》use mysql; (>是本來就有的提示符,別忘了最後的分號) 

6.改密碼:> update user set password=password("123456") where user="root"; (別忘了最後的分號) 

7.重新整理許可權(必須的步驟)>flush privileges; 

8.退出 > \q 

9.登出系統,再進入,開mysql,使用使用者名稱root和剛才設定的新密碼123456登陸。 

據說可以用直接修改user表檔案的方法:

關閉mysql,windows下開啟mysql\data\mysql,有三個檔案user.frm,user.myd,user.myi找個知道密碼的mysql,替換相應的這三個檔案,如果user表結構沒改過,一般也沒人去改,替換user.myd就可以了。 

也可以直接編輯user.myd,找個十六進製制編輯器,ultraedit就有這個功能。關閉mysql,開啟user.myd。將使用者名稱root後面的八個字元改為565491d704013245,新密碼就是123456。或者將它們對應的十六進製制數字,(左邊那裡,乙個字元對應兩個數字),改為 00 02 02 02 02 02 02 02,這就是空密碼,在編輯器右邊看到的都是星號*,看起來很象小數點。重開mysql,輸入root和你的新密碼。 

今天有點事要進mssql,因為是很久以前裝的,所以忘記了sa的密碼,雖然用windows身份驗證就可以進,但是如果用php連線mssql時就不行了,於是google了一下,找到了解決方法. 

用windows身份驗證機制進去,然後 

輸入下列命令,執行: 

exec sp_password null,'newpass','sa' 

示例 a.無原密碼的情況下更改登入密碼 

下面的示例將登入 victoria 的密碼更改為 123 

exec sp_password null,'123','sa' 

b.更改密碼 

下面的示例將登入 victoria 的密碼由 123 改為 456 

exec sp_password '123','456' 

另外我發現了乙個問題,那就是windows和sql server身份驗證機制有些不同 

windows身份驗證 

伺服器位址 登陸結果 

127.0.0.1 ok 

localhost wrong 

. ok 

sql server身份驗證 

伺服器位址 登陸結果 

127.0.0.1 ok 

localhost wrong 

. wrong 

另外記錄一下忘記mysql 密碼的取回方法 

如果 mysql 正在執行, 

首先殺之: killall -term mysqld(如果是windows,直接調出程序管理器,結束之) 

以安全模式啟動 mysq: 

/usr/bin/safe_mysqld --skip-grant-tables & 

(windows 下 mysql安裝所以盤/mysql/bin/safe_mysqld --skip-grant-tables ) 

就可以不需要密碼就進入 mysql 了. 

然後就是 

>use mysql 

>update user set password=password("new_pass") where user="root"; 

>flush privileges; 

重新殺 mysql,用正常方法啟動 mysql

MySQL忘記密碼解決辦法

在windows下 code 開啟命令列視窗,停止mysql服務 net stop mysql 啟動mysql,一般到mysql的安裝路徑,找到 mysqld nt.exe 執行 mysqld nt skip grant tables 當前視窗將會停止。另外開啟乙個命令列視窗,執行mysql 如果提...

mysql忘記密碼解決辦法。。。。

第一步 找到mysql啟動檔案my.ini,在mysqld下加入 skip grant tables 第二步 重啟mysql服務 net stop mysql net start mysql 第三步 進入user資料庫 use user 第四步 查詢表user select from user 看一...

MySQL忘記密碼解決辦法

1 若mysql已啟動,先關閉服務 開啟cmd,切換到mysql bin目錄下,執行d mysql bin mysqld.exe skip grant tables 2 開啟另乙個cmd,切換到mysql bin目錄下,此時登入不需要密碼,d mysql bin mysql.exe mysql up...