Mysql?遠程連接遇到的問題排查
Tips
:原先的 Mysql
環(huán)境太低了,現(xiàn)在需要對服務(wù)進行升級,于是把原先的配置全給刪了,重溫一下 Mysql
允許外部 IP
訪問操作
問題分析
1. ?檢查Mysql服務(wù)運行狀態(tài)
Tips
:每次鏈接不上的時候養(yǎng)成確定 Mysql
服務(wù)排查順序是極為重要的,養(yǎng)成習(xí)慣能幫你很好的養(yǎng)成嚴(yán)謹(jǐn)?shù)墓ぷ鞣绞?/p>
? ubuntu
服務(wù)器可以使用以下指令檢測 Mysql
服務(wù)是否正在運行
systemctl status mysql
2. ?確定 Mysql 監(jiān)聽的IP地址和端口
Tips:如果Mysql 設(shè)置的是監(jiān)聽本地回環(huán)網(wǎng)絡(luò),顯示的監(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)聽所有網(wǎng)絡(luò)接口 (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服務(wù),使用指令 sudo systemctl restart mysql 或 sudo service mysql restart。
? step-5:重復(fù) step-1 進行端口檢查,直到能看到 0.0.0.0 為止。
3. ?確定防火墻設(shè)置
在ubuntu 服務(wù)器上,執(zhí)行指令 sudo ufw status 檢查防火墻狀態(tài),如果防火墻啟動了,但是并沒有給3306端口進行開放允許授權(quán),就需要授權(quán) mysql 的 3306端口,使用 sudo ufw allow 3306
命令來給 3306 端口放行。
如果輸入 sudo ufw status
指令后,顯示
Status: inactive
說明防火墻都沒有開啟,就一定不是防火墻的問題。
4. ?確定 Mysql 權(quán)限
? step-1:使用指令 mysql -uroot -p 指令,后序輸入密碼,進入mysql 操作臺
? step-2:使用指令 use mysql; 切換到名為 mysql 這個數(shù)據(jù)庫
? 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; 刷新權(quán)限
Tips:在MySQL中,用戶的標(biāo)識是由用戶名和主機名共同組成的,所以‘root'@'localhost'和 'root'@'%' 是兩個不同的賬號。
'root'@'localhost' 表示只能從本地連接到MySQL。
'root'@'%' 表示可以從任何遠程主機連接到MySQL。
現(xiàn)在已經(jīng)成功創(chuàng)建了一個新的用戶 ‘root’@’%‘。這意味著root用戶現(xiàn)在可以從任何主機(包括您的Windows計算機)連接到MySQL服務(wù)器。
同時,‘root’@‘localhost’ 仍然存在,它只允許從Ubuntu服務(wù)器本地進行連接。這樣的配置通常是為了提高安全性,因為localhost通常用于系統(tǒng)內(nèi)部操作,例如維護任務(wù)和備份。
如果想要刪除 ‘root’@‘localhost’ 這個用戶,可以使用 DROP USER 'root'@'localhost'; 命令,但在做這個操作之前,請確保 ‘root’@’%’ 可以正常工作,并且不需要‘root’@‘localhost’這個用戶。
原文:http://chabaoo.cn/database/3238771pg.htm
注意,我們在這里沒有進行新建一個具有必要權(quán)限的新用戶用于遠程訪問,這個是十分危險的,不建議在公司環(huán)境等需要較高安全的環(huán)境下使用如上步驟進行操作,如果想要更加安全的遠程連接,可以參考上一個 Tips
最后的原文鏈接。
5. ?確定本機電腦的網(wǎng)絡(luò)連通性
可以使用 指令 ping + ip
來訪問是否能夠達到 mysql
服務(wù)器,如
ping 192.168.100.100
或者可以用 telnet
或者類似的工具來檢查是否能夠連接到服務(wù)器的 mysql
端口,如
telnet 192.168.100.100 3306
6. ?確定本機電腦的遠程連接數(shù)據(jù)庫軟件配置是否有問題
? step-1:檢查輸入的mysql 服務(wù)器 ip是否有誤
? step-2:檢查輸入的mysql 服務(wù)器端口是否有誤
? step-3:檢查輸入的mysql 用戶和密碼是否有誤
如果上述所有方法均不管用,可以嘗試查看 Mysql
錯誤日志 ,一般位于 /var/log/mysql/error.log
,檢查日志文件的報錯信息,并百度搜索解決方案。
參考文章
- 解決navicat連接遠程mysql失敗問題_mysql設(shè)置了遠程連接權(quán)限navicat還是連接不上
- 如何開啟MySQL遠程連接
- MySQL數(shù)據(jù)庫無法遠程連接的解決辦法_mysql不能連接數(shù)據(jù)庫
- mysql8.0數(shù)據(jù)庫無法被遠程連接問題排查(mysql遠程連接設(shè)置方法)‘root‘@‘localhost‘和‘root‘@‘%‘(無法連接mysql無法遠程連接、mysql連接被拒絕)
到此這篇關(guān)于Mysql 遠程連接遇到的問題排查的文章就介紹到這了,更多相關(guān)Mysql 遠程連接問題內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 詳解遠程連接Mysql數(shù)據(jù)庫的問題(ERROR 2003 (HY000))
- MySQL遠程連接丟失問題解決方法(Lost connection to MySQL server)
- Navicat出現(xiàn)無法遠程連接MySql服務(wù)器問題的解決辦法
- 解決navicat遠程連接mysql報錯10038的問題
- Docker部署mysql遠程連接 解決2003的問題
- 解決阿里云ECS服務(wù)器下安裝MySQL無法遠程連接的問題
- 解決遠程連接MySQL報錯:2003 - Can‘t connect to MySQL server on ‘X.X.X.X‘ (10060 “Unknown error“)問題
相關(guān)文章
mysql簡單實現(xiàn)查詢結(jié)果添加序列號的方法
這篇文章主要介紹了mysql簡單實現(xiàn)查詢結(jié)果添加序列號的方法,結(jié)合實例形式演示了2種查詢結(jié)果添加序列號的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2016-06-06Mysql實戰(zhàn)練習(xí)之簡單圖書管理系統(tǒng)
由于課設(shè)需要做這個,于是就抽了點閑余時間,寫了下,用Mysql與Java,基本全部都涉及到,包括借書/還書,以及書籍信息的更新,查看所有的書籍。需要的朋友可以參考下2021-09-09查看本地MYSQL數(shù)據(jù)庫IP地址的三種方法
本文介紹了多種方法來查看連接到本地MySQL服務(wù)器的IP地址,括使用SQL查詢從`information_schema.processlist`獲取IP地址,并通過`group by`進行統(tǒng)計,以及通過命令行工具如`mysql`和`awk`進行過濾和計數(shù),這些方法有助于監(jiān)控和管理數(shù)據(jù)庫連接,需要的朋友可以參考下2024-10-10