Mysql?遠(yuǎn)程連接遇到的問(wèn)題排查
Tips:原先的 Mysql 環(huán)境太低了,現(xiàn)在需要對(duì)服務(wù)進(jìn)行升級(jí),于是把原先的配置全給刪了,重溫一下 Mysql 允許外部 IP 訪問(wèn)操作
問(wèn)題分析
1. ?檢查Mysql服務(wù)運(yùn)行狀態(tài)
Tips:每次鏈接不上的時(shí)候養(yǎng)成確定 Mysql 服務(wù)排查順序是極為重要的,養(yǎng)成習(xí)慣能幫你很好的養(yǎng)成嚴(yán)謹(jǐn)?shù)墓ぷ鞣绞?/p>
? ubuntu 服務(wù)器可以使用以下指令檢測(cè) Mysql 服務(wù)是否正在運(yùn)行
systemctl status mysql
2. ?確定 Mysql 監(jiān)聽(tīng)的IP地址和端口
Tips:如果Mysql 設(shè)置的是監(jiān)聽(tīng)本地回環(huán)網(wǎng)絡(luò),顯示的監(jiān)聽(tīng)端口是 (127.0.0.1),我們需要去修改Mysql的配置文件,讓他能夠從其他接口接收連接,通常來(lái)說(shuō),配置文件在/etc/mysql/mysql.conf.d/mysqld.cnf,如果不上這個(gè)路徑,可以使用 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 來(lái)查看 mysql 是否在監(jiān)聽(tīng)所有網(wǎng)絡(luò)接口 (0.0.0.0) 如果顯示的是 (127.0.0.1) 就是本地環(huán)路接口了,外部機(jī)子是訪問(wèn)不了的。
? step-2:使用 vim 指令修改 mysql的配置文件。
? step-3:打開(kāi)配置文件后,輸入/bind-address并按下回車(chē), 即搜索文件中 bind-address 字段,檢查該字段是否被注釋?zhuān)绻卸鄠€(gè),可以按下 n 查找下一個(gè),上一個(gè)是按 N ,將 bind-address 字段值修改為 0.0.0.0。
? step-4:修改完畢后 重啟mysql服務(wù),使用指令 sudo systemctl restart mysql 或 sudo service mysql restart。
? step-5:重復(fù) step-1 進(jìn)行端口檢查,直到能看到 0.0.0.0 為止。
3. ?確定防火墻設(shè)置
在ubuntu 服務(wù)器上,執(zhí)行指令 sudo ufw status 檢查防火墻狀態(tài),如果防火墻啟動(dòng)了,但是并沒(méi)有給3306端口進(jìn)行開(kāi)放允許授權(quán),就需要授權(quán) mysql 的 3306端口,使用 sudo ufw allow 3306 命令來(lái)給 3306 端口放行。
如果輸入 sudo ufw status 指令后,顯示
Status: inactive
說(shuō)明防火墻都沒(méi)有開(kāi)啟,就一定不是防火墻的問(wèn)題。
4. ?確定 Mysql 權(quán)限
? step-1:使用指令 mysql -uroot -p 指令,后序輸入密碼,進(jìn)入mysql 操作臺(tái)
? step-2:使用指令 use mysql; 切換到名為 mysql 這個(gè)數(shù)據(jù)庫(kù)
? step-3:使用指令 SELECT User,Host FROM mysql.user;
? step-4:如果 root 用戶的 host 字段是 localhost,就不符合要求,下圖即為不符合要求的

? step-5:使用指令 update user set host='%' where user='root'; 注意,后面一定要有分號(hào),沒(méi)有分號(hào)其實(shí)是不會(huì)被執(zhí)行的 語(yǔ)句之后一定要有分號(hào),符合要求

? step-6:使用指令 flush privileges; 刷新權(quán)限
Tips:在MySQL中,用戶的標(biāo)識(shí)是由用戶名和主機(jī)名共同組成的,所以‘root'@'localhost'和 'root'@'%' 是兩個(gè)不同的賬號(hào)。
'root'@'localhost' 表示只能從本地連接到MySQL。
'root'@'%' 表示可以從任何遠(yuǎn)程主機(jī)連接到MySQL。
現(xiàn)在已經(jīng)成功創(chuàng)建了一個(gè)新的用戶 ‘root’@’%‘。這意味著root用戶現(xiàn)在可以從任何主機(jī)(包括您的Windows計(jì)算機(jī))連接到MySQL服務(wù)器。
同時(shí),‘root’@‘localhost’ 仍然存在,它只允許從Ubuntu服務(wù)器本地進(jìn)行連接。這樣的配置通常是為了提高安全性,因?yàn)閘ocalhost通常用于系統(tǒng)內(nèi)部操作,例如維護(hù)任務(wù)和備份。
如果想要?jiǎng)h除 ‘root’@‘localhost’ 這個(gè)用戶,可以使用 DROP USER 'root'@'localhost'; 命令,但在做這個(gè)操作之前,請(qǐng)確保 ‘root’@’%’ 可以正常工作,并且不需要‘root’@‘localhost’這個(gè)用戶。
原文:http://www.fzitv.net/database/3238771pg.htm
注意,我們?cè)谶@里沒(méi)有進(jìn)行新建一個(gè)具有必要權(quán)限的新用戶用于遠(yuǎn)程訪問(wèn),這個(gè)是十分危險(xiǎn)的,不建議在公司環(huán)境等需要較高安全的環(huán)境下使用如上步驟進(jìn)行操作,如果想要更加安全的遠(yuǎn)程連接,可以參考上一個(gè) Tips 最后的原文鏈接。
5. ?確定本機(jī)電腦的網(wǎng)絡(luò)連通性
可以使用 指令 ping + ip 來(lái)訪問(wèn)是否能夠達(dá)到 mysql 服務(wù)器,如
ping 192.168.100.100
或者可以用 telnet或者類(lèi)似的工具來(lái)檢查是否能夠連接到服務(wù)器的 mysql 端口,如
telnet 192.168.100.100 3306
6. ?確定本機(jī)電腦的遠(yuǎn)程連接數(shù)據(jù)庫(kù)軟件配置是否有問(wèn)題
? step-1:檢查輸入的mysql 服務(wù)器 ip是否有誤
? step-2:檢查輸入的mysql 服務(wù)器端口是否有誤
? step-3:檢查輸入的mysql 用戶和密碼是否有誤
如果上述所有方法均不管用,可以嘗試查看 Mysql 錯(cuò)誤日志 ,一般位于 /var/log/mysql/error.log,檢查日志文件的報(bào)錯(cuò)信息,并百度搜索解決方案。
參考文章
- 解決navicat連接遠(yuǎn)程mysql失敗問(wèn)題_mysql設(shè)置了遠(yuǎn)程連接權(quán)限navicat還是連接不上
- 如何開(kāi)啟MySQL遠(yuǎn)程連接
- MySQL數(shù)據(jù)庫(kù)無(wú)法遠(yuǎn)程連接的解決辦法_mysql不能連接數(shù)據(jù)庫(kù)
- mysql8.0數(shù)據(jù)庫(kù)無(wú)法被遠(yuǎn)程連接問(wèn)題排查(mysql遠(yuǎn)程連接設(shè)置方法)‘root‘@‘localhost‘和‘root‘@‘%‘(無(wú)法連接mysql無(wú)法遠(yuǎn)程連接、mysql連接被拒絕)
到此這篇關(guān)于Mysql 遠(yuǎn)程連接遇到的問(wèn)題排查的文章就介紹到這了,更多相關(guān)Mysql 遠(yuǎn)程連接問(wèn)題內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 詳解遠(yuǎn)程連接Mysql數(shù)據(jù)庫(kù)的問(wèn)題(ERROR 2003 (HY000))
- MySQL遠(yuǎn)程連接丟失問(wèn)題解決方法(Lost connection to MySQL server)
- Navicat出現(xiàn)無(wú)法遠(yuǎn)程連接MySql服務(wù)器問(wèn)題的解決辦法
- 解決navicat遠(yuǎn)程連接mysql報(bào)錯(cuò)10038的問(wèn)題
- Docker部署mysql遠(yuǎn)程連接 解決2003的問(wèn)題
- 解決阿里云ECS服務(wù)器下安裝MySQL無(wú)法遠(yuǎn)程連接的問(wèn)題
- 解決遠(yuǎn)程連接MySQL報(bào)錯(cuò):2003 - Can‘t connect to MySQL server on ‘X.X.X.X‘ (10060 “Unknown error“)問(wèn)題
相關(guān)文章
Mysql事務(wù)的隔離級(jí)別(臟讀+幻讀+可重復(fù)讀)
這篇文章主要介紹了Mysql事務(wù)的隔離級(jí)別(臟讀+幻讀+可重復(fù)讀),文章通告InnoDB展開(kāi)詳細(xì)內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下2022-08-08
MySQL 8.0.18使用clone plugin重建MGR的實(shí)現(xiàn)
這篇文章主要介紹了MySQL 8.0.18使用clone plugin重建MGR的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
MySQL 多列 IN 查詢之語(yǔ)法、性能與實(shí)戰(zhàn)技巧(最新整理)
本文詳解MySQL多列IN查詢,對(duì)比傳統(tǒng)OR寫(xiě)法,強(qiáng)調(diào)其簡(jiǎn)潔高效,適合批量匹配復(fù)合鍵,通過(guò)聯(lián)合索引、分批次優(yōu)化提升性能,兼容多種數(shù)據(jù)庫(kù),提供動(dòng)態(tài)生成和實(shí)戰(zhàn)技巧,助力復(fù)雜條件查詢優(yōu)化,感興趣的朋友一起看看吧2025-07-07
MySQL5.7.44-winx64版本W(wǎng)indows Server下載安裝過(guò)程
本文詳細(xì)介紹了如何下載、安裝和配置MySQL 5.7.44的步驟,包括設(shè)置環(huán)境變量、修改配置文件和密碼,以及如何修改默認(rèn)端口2025-12-12

