一、關閉mysqld服務。服務名稱則根據電腦上的實際服務名來決定,windows下則用以管理員身份運行cmd.exe程序,然后輸入:net stop mysql的服務名稱。
二、打開一個cmd窗口,以跳過權限檢查的方式啟動mysql服務。在cmd窗口中輸入如下:
mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini" --console --skip-grant-tables。--defaults-file選項指定mysql服務器的默認配置文件。而--skip-grant-tables選項表示忽略權限檢查。這個窗口一直開着
三、更新名稱為mysql這個數據庫名中的user表中的root用戶名的密碼字段authentication_string。操作如下:
先開啟另一個cmd窗口,然后輸入命令:mysql --user=root -p
然后直接回車,不用輸入密碼
然后查看該服務器上的所有數據庫名稱,輸入命令:show databases;
然后進入名稱為mysql的這個數據庫,輸入命令:use mysql;
然后修改密碼:update user set authentication_string=password('1314520') where user='root';
然后刷新權限輸入命令:flush privileges;
再退出輸入命令:quit;
最后重啟服務器:net start mysql57;
四、到此,mysql服務的root權限的密碼重置了。注意上面的authentication_string字段,因版本不同而有所不同,mysql5.7版本的是authentication_string字段,以前的版本有的是password字段;賦值密碼時,需要使用數據庫自帶的password函數,而不能直接賦值為明文密碼。另外還有可能因為The innodb_system data file 'ibdata1' must be writable服務器無法啟動,所以建議重啟該服務前刪除mysql的配置文件my.ini中datadir所代表的目錄下面的兩個文件ib_logfile0,ib_logfile1這兩個文件。
--------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------
針對ubuntu上面的mysql5.7.22上面的密碼丟失找回如下:
1、找到配置文件mysqld.cnf。文件路徑如下:
2、添加如下內容skip-grant-tables:
3、重啟服務:# sudo service mysql restart
4、輸入:# mysql。直接回車。然后進入mysql庫:use mysql;
5、修改mysql數據庫中user表的密碼字段authentication_string和字段plugin。然后退出:#quit
6、注釋掉my.cnf文件中的skip-grant-tables。
7、重啟mysql服務。