mysql登錄報錯“Access denied for user 'root'@'localhost' (using password: YES”)的處理方法


環境

CentosOS 6.5 ,已安裝mysql

情景

root密碼忘記,使用普通用戶無法登錄

解決

問題一 無法使用mysql命令

參考文章:https://www.cnblogs.com/comeping/p/8576694.html

加入環境變量PATH

# PATH=$PATH:/usr/local/mysql/bin
# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
# source /etc/profile

 

問題二 Access denied for user

登錄時出現如下

# mysql -u root -p 
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

我不知道root密碼,也不知道輸的對不對,我就按忘記密碼處理了

參考文章:https://blog.csdn.net/qq_35389417/article/details/78910974

 

在Linux下忘記MySQL密碼后我們可以通過一個mysql的參數–skip-grant-tables &輕松解決這個問題
親測在CentOS有效
其中 --skip-grant-tables 的意思是跳過授權表,通過此參數來跳過輸入密碼,后面跟得 & 符號是表示設置此進程為后台進程

具體操作過程如下:
1.首先關閉掉MySQL系統服務: service mysqld stop

2.使用命令跳過輸入密碼過程:mysqld_safe --skip-grant-tables &

然后再輸入mysql,進入mysql

3.進入 mysql數據庫,然后通過語句修改密碼:

use mysql
update user set password=password("root1234") where user='root'; //修改用戶:root的密碼成為:root1234
flush privileges//刷新MySQL的系統權限相關表,否則會出現拒絕訪問 忘記輸入的話重啟mysql服務也可以

重啟mysql系統服務后就可以用新密碼進入MySQL了: service mysqld restart

 

問題三 遠程鏈接

參考:https://blog.csdn.net/testcs_dn/article/details/51406712

開放防火牆端口
添加需要監聽的端口
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

保存設置
/etc/init.d/iptables save

查看狀態
/etc/init.d/iptables status

臨時關閉防火牆服務
service iptables stop

開啟防火牆服務
service iptables start

開機不再啟動防火牆服務
chkconfig iptables off 

 

此外,關於授權的問題,請參考https://www.cnblogs.com/fnlingnzb-learner/p/5833337.html

 


免責聲明!

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



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