關於mysql忘記密碼的解決策略

KSAH發表於2024-03-13

關於mysql忘記密碼的解決策略

  1. 關閉mysql服務

    命令列輸入

    net stop mysql
    

    或者開啟計算機管理(此電腦->管理 可進入)找到自己的mysqlimage-20240313134600233

    直接點選停止

  2. 繞過密碼登入

    開啟命令列(win+R ->cmd)(管理員/非管理員狀態下皆可)輸入

    mysqld --initialize
    
    mysqld --console --skip-grant-tables --shared-memory
    

    此時執行持續不終止,保持此視窗不關閉,另開一個命令列視窗(以管理員身份開啟),輸入

    mysql -u root -p
    

    此時會提示輸入密碼,這個密碼填什麼都行,進入mysql,輸入

    use mysql
    
    select user,authentication_string,host from User;
    

    上面一行是檢視操作,可以沒有

    alter user 'root'@'localhost' identified by '123456';
    

    上面一行是更改密碼操作,root為使用者名稱對應user,localhost對應host,後方是自己更改的密碼

    flush privileges;
    

    設定生效

    quit;
    

    退出

    關閉這兩個命令列視窗後重新啟動mysql,輸入更改後密碼,成功

  3. 其他問題

    其他解決辦法:重灌

    指路-> 安裝教程

    其他問題:為什麼修改後檢視命令

    select user,authentication_string,host from User;
    

    更改使用者名稱的密碼是亂碼?

    原因:自己設定的密碼在檢視時有加密過程

    可以透過

    select user,plugin from user where user='root';
    

    檢視密碼的加密方式

    所以這就是為什麼有些教程使用

    update user set authentication_string='123456' where User='root';
    

    不成功的原因,因為沒有加密過程,實際密碼非設定密碼

相關文章