一 .當在windows下使用mysql數據庫時,出現無法登錄的現象,需要修改mysql數據庫的roo密碼時,我們可以使用一下兩種方法。
1.
(1)關閉mysql服務。然后在bin目錄下使用cmd運行命令mysqld.exe --skip-grant-tables;
(2)使用新的cmd命令,打開mysql.exe 免密碼登錄。
(3)使用命令use mysql,切換到MySQL數據庫
update user set password=password('123456') where user='root';
設置密碼為123456
(4)flush privileges; 刷新權限
(5)exit 退出
2.找到my.ini文件,記事本打開,在mysqld下面添加skip-grant-tables,然后重啟mysql服務,在使用mysql.exe免密碼登錄。其他步驟如上。
flush privileges
flush privileges 命令本質上的作用是將當前user和privilige表中的用戶信息/權限設置從mysql庫(MySQL數據庫的內置庫)中提取到內存里。MySQL 用戶數據和權限有修改后,希望在"不重啟MySQL服務"的情況下直接生效,那么就需要執行這個命令。通常是在修改ROOT帳號的設置后,怕重啟后無法再 登錄進來,那么直接flush之后就可以看權限設置是否生效。而不必冒太大風險。
二.關閉或者重啟mysql服務的方法有兩種:
1.右擊我的電腦(計算機),點擊管理,找到服務和應用程序,打開,服務,找到mysql服務,右鍵,有關閉,啟動和重啟。
2.使用net start 命令,打開cmd,使用命令:net start mysql 打開服務,使用命令:net stop mysql 關閉服務。
當使用net start mysql或者net stop mysql命令時出現:
顯示服務名無效
有以下兩種解決方法:
使用以下方法時,需要切換到管理員身份!檢測當前是否為Administrator身份,若不是,以下步驟:
開始->關機邊上小三角->切換用戶,選擇administrator,若沒有administrator用戶。右擊 我的電腦(計算機)點擊管理,選擇本地用戶和組,找到Administrator,雙擊,找到一下界面:
將賬戶已禁用前面的勾去掉。應用,然后重復,開始->關機邊上小三角->切換用戶,切換成Administrator用戶。進行以下操作。(建議方案二)
方案一:cd到mysql 目錄下 輸入命令 mysqld –initialize,初始化后mysql才有data文件夾。
方案二:打開cmd,輸入mysqld.exe -install
Service successfully installed.
–initialize會重置root密碼,並生成一個隨機的臨時密碼,下次登錄需要用這個密碼。
按照文檔說,這個臨時密碼會顯示在cmd窗口,但並沒有。原因在於當初初始化時應該用 –console選項來輸出,在沒有輸出的情況下,這個密碼會被記錄到log中。於是開始看log存在哪里。發現 mysql的log文件是二進制的,而且有很多log文件。
最終解決辦法:
新建一個txt文件,里面寫上修改密碼的SQL語句。
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘MyNewPass’;
然后啟動mysql服務器
mysqld –init-file=path:\initfileNamealerty
執行后,即可修改root密碼。
三.mysql8.0出現無法登錄問題,使用--skip-grant-tables時,報錯且無法使用。
我使用的方式有下面兩種:
1.
(1)新建一個txt文件,里面寫上修改密碼的SQL語句。
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘MyNewPass’;
(2)啟動mysql服務器
mysqld –init-file=path:\initfileNamealerty
執行后,即可修改root密碼。
2.
(1)停止MySQL服務
cmd命令:net stop mysql
(2)打開my.ini文件
加入:ALTER USER 'root'@'localhost' IDENTIFIED BY '12345678'; 引號里面的的信息為賬號和密碼保存;
(3)進入MySQL安裝的bin目錄
執行:mysqld --defaults-file="路徑\my.ini"
(4)等待執行過后重新打開my.ini 去掉剛才添加的內容保存
(5)重啟MySQL
net start mysql
使用新密碼 12345678 登錄即可