在MySQL登陸時出現Access denied for user 'root'@'localhost' (using password: YES) 拒絕訪問mysql
對於出現拒絕訪問root用戶的解決方案
錯誤1045(28000):用戶'root'@'localhost'(使用密碼:YES)拒絕訪問sql
首先解析此英文:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES);
解析的地方有兩處:1.Access denied(拒絕訪問);2.using password:NO/YESvim
1、出現access denied的緣由有以下可能:服務器
1)mysql的服務器中止:
若MySQL已經沒有啓動,重啓MySQL服務器:systemctl restart mysqld
2)用戶的端口號或者IP致使:
若用戶的端口號與IP(3306/3307)不一致,打開my.ini文件進行編輯。所有編輯替換爲: port=X
3)mysql的配置文件錯誤----my.ini等文件:
my.ini文件誤輸入無效內容,不知道到何處。複製替換該文件;有人已經對my.ini文件進行解釋以及註釋:https://blog.csdn.net/lienfeng6/article/details/78140404
4)root用戶的密碼錯誤(後面解決)this
2、出現 using password的緣由以下:.net
不輸入密碼:3d
錯誤的密碼:rest
解決方案:
vim /etc/my.cnf文件;
在[mysqld]後添加skip-grant-tables(登陸時跳過權限檢查)
server
重啓MySQL服務:sudo systemctl restart mysqldblog
修改密碼
登陸mysql,輸入mysql –uroot –p;直接回車(Enter)
輸入:set password for ‘root’@‘localhost’=password(‘Admin123@qwe’);
若是報:ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
輸入:flush privileges;
再次輸入:set password for ‘root’@‘localhost’=password(‘Admin123@qwe’);
爲避免麻煩,再次設置遠程訪問
退出:exit
再把my.ini的skip-grant-tables刪除或者註釋掉
重啓MySQL:sudo systemctl restart mysqld
再次鏈接,成功