環境
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