MySQL遠(yuǎn)程無(wú)法連接的一些常見(jiàn)原因總結(jié)
前言
MySQL是目前非常流行的數(shù)據(jù)庫(kù)之一,也是中小企業(yè)持久化存儲(chǔ)的首選數(shù)據(jù)庫(kù)。
不同于我們?nèi)粘W(xué)習(xí),在實(shí)際應(yīng)用中,MySQL服務(wù)都會(huì)掛載在某臺(tái)服務(wù)器上。如果MySQL部署在某臺(tái)云服務(wù)器上,這樣一來(lái),操縱數(shù)據(jù)庫(kù)每次都需要先連接服務(wù)器,再進(jìn)入數(shù)據(jù)庫(kù)操作,不是很方便。
于是,學(xué)習(xí)遠(yuǎn)程連接 MySQL 的方法是數(shù)據(jù)庫(kù)在服務(wù)器上時(shí)的必修課。下面我將講述遠(yuǎn)程連接報(bào)錯(cuò)的常見(jiàn)三種原因。
原因1:
MySQL的遠(yuǎn)程訪問(wèn)權(quán)限未開(kāi)放
如果最常見(jiàn)的無(wú)法遠(yuǎn)程連接問(wèn)題,因?yàn)闆](méi)開(kāi)啟遠(yuǎn)程訪問(wèn)權(quán)限導(dǎo)致的。
解決方案:
進(jìn)入MySQL中,通過(guò)下述命令可以查看遠(yuǎn)程訪問(wèn)權(quán)限等,創(chuàng)建用戶(hù)的遠(yuǎn)程訪問(wèn)權(quán)限并刷新指令即可,別忘記每次修改命令都要刷新指令哦。
常見(jiàn)命令如下:
# 查看當(dāng)前遠(yuǎn)程連接的權(quán)限 select User,authentication_string,Host from user; # 創(chuàng)建用戶(hù)遠(yuǎn)程訪問(wèn)權(quán)限 create user root@'%' identified by '123456'; # 允許指定主機(jī)(IP地址)訪問(wèn)權(quán)限 grant all privileges on test.* to '用戶(hù)名'@'ip地址' identified by '密碼'; # 無(wú)法創(chuàng)建請(qǐng)刪除重新試一遍 drop user root@'ip地址'; # 賦予用戶(hù)操作的全部權(quán)限 grant all privileges on *.* to root@'%'; # 刷新指令 flush privileges;
原因2:
服務(wù)器開(kāi)啟了防火墻,導(dǎo)致MySQL的訪問(wèn)端口無(wú)法使用
如果服務(wù)器開(kāi)啟了防火墻,并且未設(shè)置MySQL端口開(kāi)放策略,那么你將無(wú)法通過(guò)對(duì)應(yīng)的端口遠(yuǎn)程訪問(wèn)MySQL。
解決方案:
關(guān)閉防火墻,或者開(kāi)放對(duì)應(yīng)的MySQL端口即可,比如默認(rèn)的MySQL端口是3306,開(kāi)放他就行。
常見(jiàn)命令如下:
# 查看防火墻狀態(tài) firewall-cmd --state # 啟動(dòng)防火墻 systemctl start firewalld.service # 關(guān)閉防火墻 systemctl stop firewalld.service # 設(shè)置開(kāi)機(jī)自啟動(dòng) systemctl enable firewalld.service # 開(kāi)放防火墻端口 firewall-cmd --zone=public --add-port=3306/tcp --permanent # 重新加載配置 firewall-cmd --reload # 查看開(kāi)放的防火墻端口 firewall-cmd --zone=public --list-ports
原因3:
docker鏈被清除,導(dǎo)致MySQL無(wú)法訪問(wèn)
如果你的MySQL是部署在docker容器中的,并且在部署完成后開(kāi)啟設(shè)置了防火墻。這個(gè)時(shí)候就可能導(dǎo)致docker的鏈被清除,即使你開(kāi)啟了遠(yuǎn)程訪問(wèn)權(quán)限,也只能通過(guò)進(jìn)入容器訪問(wèn)MySQL,遠(yuǎn)程無(wú)法訪問(wèn)。
解決方案:
重新啟動(dòng)docker,可以恢復(fù)docker鏈。
# 重啟docker systemctl restart docker
總結(jié)
到此這篇關(guān)于MySQL遠(yuǎn)程無(wú)法連接的一些常見(jiàn)原因的文章就介紹到這了,更多相關(guān)MySQL遠(yuǎn)程無(wú)法連接原因內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SQL中current_date()函數(shù)的實(shí)現(xiàn)
日期時(shí)間類(lèi)型的數(shù)據(jù)也是經(jīng)常要用到的,SQL中也提供了一些函數(shù)對(duì)這些數(shù)據(jù)進(jìn)行處理,本文主要介紹了SQL中current_date()函數(shù)的實(shí)現(xiàn),具有一定的參考價(jià)值2024-02-02Mysql如何按照范圍區(qū)間創(chuàng)建分區(qū)表
在Mysql的范圍分區(qū)表定義中,分區(qū)范圍需要連續(xù)并且不會(huì)有覆蓋,定義范圍分區(qū)表時(shí),使用VALUES LESS THAN操作符,這篇文章主要介紹了Mysql如何按照范圍區(qū)間創(chuàng)建分區(qū)表,需要的朋友可以參考下2024-08-08MySQL索引詳解及演進(jìn)過(guò)程及面試題延伸
這篇文章主要介紹了MySQL索引詳解及演進(jìn)過(guò)程以及延申出面試題,索引在關(guān)系型數(shù)據(jù)庫(kù)中,是一種單獨(dú)的、物理的對(duì)數(shù)據(jù)庫(kù)表中的一列或者多列值進(jìn)行排序的一種存儲(chǔ)結(jié)構(gòu)2022-07-07mysql字符串拼接并設(shè)置null值的實(shí)例方法
在本文中小編給大家整理的是關(guān)于mysql 字符串拼接+設(shè)置null值的實(shí)例內(nèi)容以及具體方法,需要的朋友們可以學(xué)習(xí)下。2019-09-09