006-解決ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)【轉】


本文轉載自:https://blog.csdn.net/hua1011161696/article/details/80666025

解決方案:

    步驟一:關閉數據庫服務端mysqld程序

兩種方式:

①快捷鍵 windows + R     ;輸入 services.msc  ;   找到MySQL  停止其服務(前提是你之前已經把MySQL加入了系統服務中)

 

②在命令行程序中;注意需要以管理員權限運行cmd程序,不然無法關閉mysqld進程

>>tasklist |findstr mysqld        這行命令可以用來查看mysqld是否在運行,在運行中則可以查到它的PID

>>taskkill /F /PID xxxx             xxxx是從前面一條命令得到的PID值

 

步驟二:跳過權限登錄MySQL 服務器端

在cmd中執行 mysqld --skip-grant-tables 

>>mysqld --skip-grant-tables

 

此時cmd程序會阻塞,關閉cmd程序 然后重新以管理員權限運行cmd

然后在cmd命令行中輸入 mysql 就能連接上MySQL 服務器端了

>>mysql

然后可以通過sql語句 :SELECT * from mysql.user\G;  來查看服務器端所有的用戶信息,重點查看User、Password、authentication_string這三項。這條語句非常關鍵。

步驟三:修改密碼

 依次執行如下sql語句:

update mysql.user set authentication_string=password('321') where user = 'root';
flush privileges;
上面第一條sql語句中 password('密碼') 函數中寫你想要改成的密碼,我這用的是密碼321

接着執行:

SELECT * from mysql.user\G;
去找到root用戶的authentication_string這項,並把它的值記下來。

MySQL會給密碼進行加密,你想要設置的密碼進行加密后的值就等於此時authentication_string這項的值

所以接下來把Password這項的值也設置成此時authentication_string項的值就ok了;我設置的密碼是321 ,其對應的密文是  *7297C3E22DEB91303FC493303A8158AD4231F486

執行下面兩條sql語句:

update mysql.user set password = '*7297C3E22DEB91303FC493303A8158AD4231F486' where user = 'root';
flush privileges;


步驟四:

輸入 quit 退出 mysql ;然后就可以直接登錄了

>>mysql -u root -p

--------------------------------------------------------------------------------

當然也可以重啟下mysqld再登錄
再次提醒:需要以管理員權限運行cmd
>>tasklist |findstr mysqld
>>taskkill /F /PID xxxx

然后就是啟動mysqld程序
(不知怎么把mysqld加入系統服務中去可看點擊打開鏈接)
>>mysqld

若已經把mysqld程序加入了系統服務中,則需要在系統服務中啟動MySQL服務端

快捷鍵 windows + R     ;輸入 services.msc  ;

 

最后就是重新登錄

>>mysql -u root -p

在Password:處填入你前面設置的密碼

補充:修改密碼時報語法錯誤解決方法

問題:

mysql> update mysql.user set authentication_string=password('321') where user = 'root';

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '('321') where user = 'root'' at line 1

解決方法:

使用如下語句即可解決

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


免責聲明!

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



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