1. 程式人生 > >重置密碼解決MySQL for Linux錯誤 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

重置密碼解決MySQL for Linux錯誤 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

剛才 技術分享 自己的 png res 文檔 .com acc authent

一般這個錯誤是由密碼錯誤引起,解決的辦法自然就是重置密碼。

假設我們使用的是root賬戶。

1.重置密碼的第一步就是跳過MySQL的密碼認證過程,方法如下:

#vim /etc/my.cnf(註:windows下修改的是my.ini)

在文檔內搜索mysqld定位到[mysqld]文本段:
/mysqld(在vim編輯狀態下直接輸入該命令可搜索文本內容)

在[mysqld]後面任意一行添加“skip-grant-tables”用來跳過密碼驗證的過程,如下圖所示:

技術分享圖片

保存文檔並退出:

#:wq
2.接下來我們需要重啟MySQL:

/etc/init.d/mysql restart(有些用戶可能需要使用/etc/init.d/mysqld restart)

技術分享圖片

3.重啟之後輸入#mysql即可進入mysql

技術分享圖片

4.接下來就是用sql來修改root的密碼

mysql> use mysql;
mysql> update user set password=password("你的新密碼") where user="root";
mysql> flush privileges;
mysql> quit

註意:

如果是MySql5.7 執行: mysql> update user set password=password("你的新密碼") where user="root"; 這一步會報錯:如下:

ERROR 1054 (42S22): Unknown column ‘password‘ in ‘field list‘

原因:mysql5.7 沒有password字段了,用authentication_string來代替

解決方法:將 update user set password=password("你的新密碼") where user="root"; 改為: update mysql.user set authentication_string=password(‘root‘) where user=‘root‘ ;即可

到這裏root賬戶就已經重置成新的密碼了。

5.編輯my.cnf,去掉剛才添加的內容,然後重啟MySQL。大功告成!

技術分享圖片

網上有很多關於這個問題的解決說明,很多剛接觸的朋友可能比較迷惑的是在自己的平臺上找不到my.cnf或者my.ini文件,如果你是Linux,使用如下方式可以搜索到:

技術分享圖片

至於windows平臺,去安裝目錄下找一下my.ini吧。

重置密碼解決MySQL for Linux錯誤 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)