Mysql?遠程連接遇到的問題排查
Tips
:原先的 Mysql
環(huán)境太低了,現在需要對服務進行升級,于是把原先的配置全給刪了,重溫一下 Mysql
允許外部 IP
訪問操作
問題分析
1. ?檢查Mysql服務運行狀態(tài)
Tips
:每次鏈接不上的時候養(yǎng)成確定 Mysql
服務排查順序是極為重要的,養(yǎng)成習慣能幫你很好的養(yǎng)成嚴謹的工作方式
? ubuntu
服務器可以使用以下指令檢測 Mysql
服務是否正在運行
systemctl status mysql
2. ?確定 Mysql 監(jiān)聽的IP地址和端口
Tips:如果Mysql 設置的是監(jiān)聽本地回環(huán)網絡,顯示的監(jiān)聽端口是 (127.0.0.1),我們需要去修改Mysql的配置文件,讓他能夠從其他接口接收連接,通常來說,配置文件在/etc/mysql/mysql.conf.d/mysqld.cnf,如果不上這個路徑,可以使用 locate my.cnf 或者 find / -name my.* 或者 ps aux | grep mysql | grep my.cnf 等,不同版本的 mysql 配置文件可能不太一樣,有的是 my.cnf,有的是 mysqld.cnf
? step-1:使用 sudo netstat -plnt | grep mysql 或者 netstat -apn | grep 3306 來查看 mysql 是否在監(jiān)聽所有網絡接口 (0.0.0.0) 如果顯示的是 (127.0.0.1) 就是本地環(huán)路接口了,外部機子是訪問不了的。
? step-2:使用 vim 指令修改 mysql的配置文件。
? step-3:打開配置文件后,輸入/bind-address并按下回車, 即搜索文件中 bind-address 字段,檢查該字段是否被注釋,如果有多個,可以按下 n 查找下一個,上一個是按 N ,將 bind-address 字段值修改為 0.0.0.0。
? step-4:修改完畢后 重啟mysql服務,使用指令 sudo systemctl restart mysql 或 sudo service mysql restart。
? step-5:重復 step-1 進行端口檢查,直到能看到 0.0.0.0 為止。
3. ?確定防火墻設置
在ubuntu 服務器上,執(zhí)行指令 sudo ufw status 檢查防火墻狀態(tài),如果防火墻啟動了,但是并沒有給3306端口進行開放允許授權,就需要授權 mysql 的 3306端口,使用 sudo ufw allow 3306
命令來給 3306 端口放行。
如果輸入 sudo ufw status
指令后,顯示
Status: inactive
說明防火墻都沒有開啟,就一定不是防火墻的問題。
4. ?確定 Mysql 權限
? step-1:使用指令 mysql -uroot -p 指令,后序輸入密碼,進入mysql 操作臺
? step-2:使用指令 use mysql; 切換到名為 mysql 這個數據庫
? step-3:使用指令 SELECT User,Host FROM mysql.user;
? step-4:如果 root 用戶的 host 字段是 localhost,就不符合要求,下圖即為不符合要求的
? step-5:使用指令 update user set host='%' where user='root';
注意,后面一定要有分號,沒有分號其實是不會被執(zhí)行的 語句之后一定要有分號,符合要求
? step-6:使用指令 flush privileges; 刷新權限
Tips:在MySQL中,用戶的標識是由用戶名和主機名共同組成的,所以‘root'@'localhost'和 'root'@'%' 是兩個不同的賬號。
'root'@'localhost' 表示只能從本地連接到MySQL。
'root'@'%' 表示可以從任何遠程主機連接到MySQL。
現在已經成功創(chuàng)建了一個新的用戶 ‘root’@’%‘。這意味著root用戶現在可以從任何主機(包括您的Windows計算機)連接到MySQL服務器。
同時,‘root’@‘localhost’ 仍然存在,它只允許從Ubuntu服務器本地進行連接。這樣的配置通常是為了提高安全性,因為localhost通常用于系統(tǒng)內部操作,例如維護任務和備份。
如果想要刪除 ‘root’@‘localhost’ 這個用戶,可以使用 DROP USER 'root'@'localhost'; 命令,但在做這個操作之前,請確保 ‘root’@’%’ 可以正常工作,并且不需要‘root’@‘localhost’這個用戶。
原文:http://www.dbjr.com.cn/database/3238771pg.htm
注意,我們在這里沒有進行新建一個具有必要權限的新用戶用于遠程訪問,這個是十分危險的,不建議在公司環(huán)境等需要較高安全的環(huán)境下使用如上步驟進行操作,如果想要更加安全的遠程連接,可以參考上一個 Tips
最后的原文鏈接。
5. ?確定本機電腦的網絡連通性
可以使用 指令 ping + ip
來訪問是否能夠達到 mysql
服務器,如
ping 192.168.100.100
或者可以用 telnet
或者類似的工具來檢查是否能夠連接到服務器的 mysql
端口,如
telnet 192.168.100.100 3306
6. ?確定本機電腦的遠程連接數據庫軟件配置是否有問題
? step-1:檢查輸入的mysql 服務器 ip是否有誤
? step-2:檢查輸入的mysql 服務器端口是否有誤
? step-3:檢查輸入的mysql 用戶和密碼是否有誤
如果上述所有方法均不管用,可以嘗試查看 Mysql
錯誤日志 ,一般位于 /var/log/mysql/error.log
,檢查日志文件的報錯信息,并百度搜索解決方案。
參考文章
- 解決navicat連接遠程mysql失敗問題_mysql設置了遠程連接權限navicat還是連接不上
- 如何開啟MySQL遠程連接
- MySQL數據庫無法遠程連接的解決辦法_mysql不能連接數據庫
- mysql8.0數據庫無法被遠程連接問題排查(mysql遠程連接設置方法)‘root‘@‘localhost‘和‘root‘@‘%‘(無法連接mysql無法遠程連接、mysql連接被拒絕)
到此這篇關于Mysql 遠程連接遇到的問題排查的文章就介紹到這了,更多相關Mysql 遠程連接問題內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Mysql實戰(zhàn)練習之簡單圖書管理系統(tǒng)
由于課設需要做這個,于是就抽了點閑余時間,寫了下,用Mysql與Java,基本全部都涉及到,包括借書/還書,以及書籍信息的更新,查看所有的書籍。需要的朋友可以參考下2021-09-09