找回丟失的mysql服務的root用戶的密碼


    一、關閉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服務。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM