Mysql5.7登錄錯誤1045和1130的解決方法,親測有用,希望能幫助到你們。


Mysql

(針對Mysql5.7版本,其他版本可能略有不同)

錯誤:1045

解決方法:

  1. 以管理員身份運行cmd(win8系統:win+x 鍵 ,再按 A鍵 ),進入Mysql安裝目錄下的bin目錄下(如下圖所示,根據自己的情況修改目錄)
    @:下面還要再打開cmd窗口,為方便區別,此窗口記為‘’ cmd-A ‘’窗口

  2. 運行net stop mysql ,停止Mysql服務

  3. 運行mysqld -nt --skip-grant-tables,使得在登錄時可以跳過登錄密碼

    以上三步正常運行后該cmd窗口應該處於靜止不動,光標閃爍的狀態

  4. 打開另一個管理員的cmd窗口     @:此窗口記為‘’ cmd-B‘’窗口

  5. 運行mysql -uroot -p回車,出現Enter password:直接回車,成功進入了mysql

  6. 可以運行以下命令來修改密碼:

    1. use mysql使用mysql數據庫

    2. update user set authentication_string=password('mysqladmin') where user='root'; 更新root的密碼為mysqladmin ,顯示Query OK則修改成功。
      解釋:更新 user表 使 authenticatio_string(密碼)字段 = mysqladmin(password('') 是以密碼保護的形式存儲,在數據庫看不見密碼原文)  修改的是,user(字段)=root(值)的哪一行。

    3. 以上兩步就可以修改密碼成功。若你的mysql不是用authentication_string字段來存儲密碼。可以用以下方法來找到存儲密碼的字段。
    • show tables;查看當前數據庫下的所有表
    • desc user查看user表的結構,在這一步你可以查看user表的字段,密碼字段就在這里,不是mysql5.7版本的可以在“desc user”的結果下,自己判斷哪個是密碼字段

    • select host,user,authentication_string from user; 查看三列關於user表的信息,若你的密碼字段不是authentication_string,可自行替換成你表中的密碼字段名。

    • update user set authentication_string='mysqladmin' where user='root'; 不推薦,這種方式就是將密碼明文不經過加密直接顯示在數據庫中。


 

經過以上6步后,已經成功的修改了數據庫登錄密碼。接下來是再次嘗試登錄。

  1. 關閉‘’cmd-A‘’窗口 (輸入了skip-grant-tables的cmd)

  2. 關閉任務管理器中的進程mysql.exe(任務管理器->詳細信息->進程->找到mysql.exe(大約占150M內存)->關閉)  

  3. 在‘’cmd-B‘’窗口中輸入net start mysql

  4. 輸入mysql -uroot -p,敲入新的用戶名、密碼 即可登錄成功


 

若還是不能登錄,或出現錯誤1130。則是權限問題 (或 host問題),以下為權限為題的解決方法:

錯誤:1130

解決方法:

    1. 按以上方法跳過驗證進入數據庫

    2. mysql>中執行flush privileges刷新權限(不執行這步.會出現在skip-grant-tables模式下不能授權的問題)

    3. 執行grant all privileges on *.* to root@'localhost' identified by "mysqladmin";為root用戶授權

    4. 關閉cmdmysql.exe進程,啟動mysql服務net start mysql,重新登錄mysql -uroot -p即可成功

 

若還是不能解決,或有其他問題。可以評論留言,我會盡快回復。


免責聲明!

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



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