重置密碼解決MySQL for Linux錯誤 ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)或者NO
一般是因爲密碼錯誤引起,YES代表輸入密碼,密碼錯誤,NO代表未輸入密碼,密碼錯誤,
都是因爲密碼錯誤引起
**
解決方案
1 通過跳過MySQL的密碼認證過程,修改密碼
第一步:輸入命令
vim /etc/my.cnf
進入my.cnf在後面加入“skip-grant-tables”用來跳過密碼驗證的過程
點擊 i 進入編輯
esc退出編輯輸入 :wq! 保存並退出
2
接下來重啓Mysql
重啓Mysql命令 service mysql restart
重啓出錯可以直接重啓liunx系統,打開之後啓動mysql
啓動mysql 命令 service mysql start
3
重啓之後我們直接輸入mysql可以直接進入
當出現 **mysql>**就代表跳過密碼成功接下來就是重要的了
4
使用sql來修改root的密碼
mysql> use mysql;
mysql> update user set password=password(“你的新密碼”) where user=“root”;
mysql> flush privileges;
mysql> quit
一條一條的運行
如果運行mysql> update user set password=password(“你的新密碼”) where user=“root”;出現下面這種情況不要着急
我們換一種方式
更換語句
*update user set authentication_string="6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9" where user=“root”;
注意*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9不要去更改裏面的內容
因爲mysql的密碼保護機制我們提取到的這段文字是123456
也就是說我們吧Mysql的密碼更換爲123456
這樣就成功了
接下來還是上面的操作
保存操作並退出
5
退出之後不要急着重啓mysql先把我們之前改改動的文件給改回來
執行 : vim /etc/my.cnf
編輯刪除並保存
6
現在我們來重啓mysql
mysql重啓失敗的還可以跟之前一樣從其liunx
重啓之後們開始啓動mysql
service mysql start
開始嘗試登錄
mysql -uroot -p設置的密碼(跟着第二部走的密碼爲123456)
這時候我們會發現可以進來了
這時候不要急 想要修改密碼或者外部訪問的我們還要有操作
7 修改2個全局參數-降低密碼驗證策略,否則無法修改成簡單密碼(密碼必須爲字母+數字+特殊符號長度大於8位)
(命令在msql>中沒有退出)
輸入命令:
set global validate_password_policy=0;
set global validate_password_length=1;
之後設置你想要更改的密碼
命令:SET PASSWORD = PASSWORD(‘你想要更改的密碼’);
如果該操作不能執行或者出現錯誤,從新啓動mysql或者重啓liunx
設置成功之後退出mysql
命令 :exit;
8.
使用新密碼登錄
登錄之後就可以設置mysql遠程訪問(該命令需在登陸mysql後執行)
想要遠程訪問第七步不能少!!!特別注意!!!
使用命令
命令: grant all privileges on . to ‘root’ @’%’ identified by ‘123456’;(123456是你遠程訪問的密碼你可已更改爲你現在的密碼)
命令: flush privileges;
保存並退出
這樣就可以了
9
我們還可以設置爲開機自啓動(該命令需在退出mysql後執行)
啓動MySQL
命令: systemctl start mysqld
設置自啓動
命令:systemctl enable mysqld
10
我們可以測試下
在window 打開Navicat ,遠程連接mysql
發現我們可以鏈接成功了
小結
這個錯誤真的會讓人很頭疼,我也是查閱很多資料加上自己的摸索把他搞好,希望對你們有幫助