mysql8.0數(shù)據(jù)庫(kù)無(wú)法被遠(yuǎn)程連接問(wèn)題排查小結(jié)
步驟
1. 檢查MySQL服務(wù)的運(yùn)行狀態(tài)
在Ubuntu服務(wù)器上,使用systemctl status mysql命令檢查MySQL是否正在運(yùn)行。
如圖顯示正在運(yùn)行:

2. 確認(rèn)MySQL監(jiān)聽(tīng)的IP地址和端口
使用sudo netstat -plnt | grep mysql來(lái)查看MySQL是否在監(jiān)聽(tīng)所有網(wǎng)絡(luò)接口(0.0.0.0)或僅在監(jiān)聽(tīng)本地環(huán)回接口(127.0.0.1)。如果只監(jiān)聽(tīng)在127.0.0.1,那么你需要修改MySQL配置文件以便它能從其他接口接收連接。通常情況下,這個(gè)配置文件位于/etc/mysql/mysql.conf.d/mysqld.cnf,找到bind-address這一項(xiàng)并將其更改為0.0.0.0。然后重啟mysql服務(wù):sudo systemctl restart mysql。
如圖,需保證是0.0.0.0:

3. 確認(rèn)防火墻設(shè)置
在Ubuntu服務(wù)器上運(yùn)行sudo ufw status查看防火墻狀態(tài)。如果防火墻啟用了,并且沒(méi)有允許3306端口(默認(rèn)的MySQL端口),則需要添加規(guī)則允許此端口??梢允褂?code>sudo ufw allow 3306命令來(lái)實(shí)現(xiàn)。
如圖,防火墻顯示為關(guān)閉狀態(tài),肯定不是防火墻阻止了3306端口:

4. 檢查MySQL用戶權(quán)限
確保root用戶有權(quán)限從非localhost登錄。你可以登錄MySQL然后使用這個(gè)SQL命令查看用戶權(quán)限:先登錄mysql -u root -p、然后切換到mysql數(shù)據(jù)庫(kù)use mysql;、查看SELECT User, Host FROM mysql.user;。如果root用戶的host字段是localhost,那么你需要更改權(quán)限讓root用戶可以從任何主機(jī)登錄。
如圖,root用戶的host字段是localhost,不符合要求:

我們改過(guò)來(lái):
我們需要首先更改用戶的主機(jī)設(shè)置,然后再更新用戶的密碼??梢园凑找韵虏襟E操作:
創(chuàng)建一個(gè)允許從任何主機(jī)登錄的root用戶:
CREATE USER 'root'@'%' IDENTIFIED BY '123';
注意:上面因?yàn)槊艽a太簡(jiǎn)單,是不允許的,要用復(fù)雜一點(diǎn)的密碼,如:
CREATE USER 'root'@'%' IDENTIFIED BY 'YourNewComplexPassword';
(我是用qing********123)
(20231024 但是我后面測(cè)了一下,是可以的,估計(jì)我先前配置了mysql_secure_installation,我后面直接用root用戶登錄是ok的,root用戶密碼123,十分簡(jiǎn)單,估計(jì)后面容易被爆破。。。)
另外,想要更改密碼可以用:
ALTER USER 'root'@'%' IDENTIFIED BY 'YourNewComplexPassword';
授予新用戶所有權(quán)限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

刷新權(quán)限(不刷新好像也可以):
FLUSH PRIVILEGES;

查看查看用戶權(quán)限:
SELECT User, Host FROM mysql.user;

發(fā)現(xiàn)多了一個(gè)'root'@'%',這就是正常的。
在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è)用戶。
注意:允許root用戶從任何主機(jī)進(jìn)行遠(yuǎn)程登錄可能帶來(lái)安全風(fēng)險(xiǎn),所以在生產(chǎn)環(huán)境中,我們通常會(huì)創(chuàng)建一個(gè)具有必要權(quán)限的新用戶用于遠(yuǎn)程訪問(wèn)。
5. 在Windows電腦上測(cè)試網(wǎng)絡(luò)連通性
在你的Windows電腦上,使用ping 192.168.200.212命令確認(rèn)你的電腦能夠到達(dá)Ubuntu服務(wù)器(改成你自己mysql所在主機(jī)ip)。然后,你可以使用telnet或者類(lèi)似的工具來(lái)檢查是否能夠連接到服務(wù)器的MySQL端口,比如 telnet 192.168.200.212 3306。
正常會(huì)顯示:

6. 檢查Datagrip配置
確保你的Datagrip中數(shù)據(jù)庫(kù)連接配置正確。包括IP地址、端口、用戶名和密碼。
通過(guò)以上步驟,應(yīng)該能夠找出問(wèn)題所在并解決它。如果還有問(wèn)題,可能需要查看更詳細(xì)的日志信息,比如MySQL的錯(cuò)誤日志,通常位于/var/log/mysql/error.log。
以上所有步驟都檢查并正確設(shè)置后,應(yīng)該就能遠(yuǎn)程訪問(wèn)了
我用datagrip,點(diǎn)擊Test Connection,顯示連接成功了:

到此這篇關(guān)于mysql8.0數(shù)據(jù)庫(kù)無(wú)法被遠(yuǎn)程連接問(wèn)題排查小結(jié)的文章就介紹到這了,更多相關(guān)mysql8.0無(wú)法被遠(yuǎn)程連接內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用MySQL的Binlog進(jìn)行數(shù)據(jù)回滾的完整流程
本文描述了使用MySQL的binlog進(jìn)行數(shù)據(jù)回滾的過(guò)程,從確認(rèn)是否啟用Binlog日志到找到誤操作的記錄,再到編寫(xiě)腳本解析記錄,最后執(zhí)行SQL語(yǔ)句實(shí)現(xiàn)回滾,需要的朋友可以參考下2025-12-12
MySQL用作備份還原的導(dǎo)入和導(dǎo)出命令用法整理
這篇文章主要介紹了MySQL用作備份還原的導(dǎo)入和導(dǎo)出命令用法整理,包括mysqldump的命令的使用以及l(fā)oad data相關(guān)命令,需要的朋友可以參考下2015-12-12
mysql創(chuàng)建用戶以及給用戶授予權(quán)限實(shí)現(xiàn)方式
文章講解了MySQL用戶創(chuàng)建與授權(quán)方法,包括設(shè)置空密碼、分配特定數(shù)據(jù)庫(kù)表權(quán)限及全部權(quán)限,強(qiáng)調(diào)安全授權(quán)的重要性,并提及回收和修改權(quán)限的命令2025-07-07
mysql 數(shù)據(jù)類(lèi)型TIMESTAMP
timestamp數(shù)據(jù)類(lèi)型是一個(gè)比較特殊的數(shù)據(jù)類(lèi)型,他可以自動(dòng)在你不使用程序更新情況下只要你更新了記錄timestamp會(huì)自動(dòng)更新時(shí)間2014-07-07
MYSQL必知必會(huì)讀書(shū)筆記第三章之顯示數(shù)據(jù)庫(kù)
MySQL是一種開(kāi)放源代碼的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS),MySQL數(shù)據(jù)庫(kù)系統(tǒng)使用最常用的數(shù)據(jù)庫(kù)管理語(yǔ)言--結(jié)構(gòu)化查詢語(yǔ)言(SQL)進(jìn)行數(shù)據(jù)庫(kù)管理。接下來(lái)通過(guò)本文給大家介紹MYSQL必知必會(huì)讀書(shū)筆記第三章之顯示數(shù)據(jù)庫(kù),感興趣的朋友參考下吧2016-05-05
MySQL?EXPLAIN中的key_len索引使用實(shí)戰(zhàn)解析
在MySQL執(zhí)行計(jì)劃中,key_len表示查詢實(shí)際使用索引的字節(jié)長(zhǎng)度,今天通過(guò)本文給大家介紹MySQL?EXPLAIN中的key_len索引使用實(shí)戰(zhàn)解析,感興趣的朋友跟隨小編一起看看吧2025-11-11
Linux/UNIX和Window平臺(tái)上安裝Mysql
這篇文章主要為大家詳細(xì)介紹了Linux/UNIX和Window兩個(gè)系統(tǒng)上采用命令安裝Mysql的方法,感興趣的小伙伴們可以參考一下2016-05-05

