MySQL數(shù)據(jù)庫無法遠程連接的問題詳細解決過程
前言
在使用 MySQL 數(shù)據(jù)庫時,遇到這樣的問題:
本地可以連接 MySQL,但遠程機器連接時,總是報錯
Host ... is not allowed to connect to this MySQL server
。
這通常是因為 MySQL 的用戶權限或配置限制了遠程訪問。
1. 登錄 MySQL 數(shù)據(jù)庫
首先,使用本地命令行登錄 MySQL:
mysql -u root -p
輸入 root 用戶的密碼進入數(shù)據(jù)庫。
2. 切換到 mysql 系統(tǒng)庫
MySQL 的用戶權限存放在 mysql
數(shù)據(jù)庫中,我們需要切換到它:
USE mysql;
3. 查看當前用戶和主機權限
執(zhí)行以下命令查看當前 MySQL 用戶的 host 設置:
SELECT User, Host FROM mysql.user;
你會看到一張表,例如:
+------------------+-----------+ | User | Host | +------------------+-----------+ | root | localhost | | mysql.session | localhost | | mysql.sys | localhost | +------------------+-----------+
注意到 root
用戶的 Host
是 localhost
,這表示它 只能從本機連接,無法被遠程機器連接。
4. 修改 root 用戶的 Host 為 %
要允許 root 用戶從任意主機連接,需要把它的 Host
改成 %
(表示任意主機):
UPDATE mysql.user SET host='%' WHERE user='root' AND host='localhost';
5. 刷新權限生效
修改完權限后,需要刷新權限表才能生效:
FLUSH PRIVILEGES;
執(zhí)行以下命令查看當前 MySQL 用戶的 host 設置:
SELECT User, Host FROM mysql.user;
你會看到一張表,root的host被設置為了%,表示可以接受遠程連接
+------------------+-----------+ | User | Host | +------------------+-----------+ | root | % | | mysql.session | localhost | | mysql.sys | localhost | +------------------+-----------+
不出意外的話,現(xiàn)在你已經(jīng)可以進行遠程連接了,如果還有問題可以進行6-7的排查
6. 檢查 MySQL 配置文件
有時候,MySQL 的配置文件 my.cnf
(或 my.ini
)會限制綁定的地址,默認只監(jiān)聽 127.0.0.1
。
打開配置文件:
vim /etc/my.cnf
找到
[mysqld]
部分,修改:bind-address = 0.0.0.0
這表示監(jiān)聽所有 IP,而不僅是本機。
保存后,重啟 MySQL:
systemctl restart mysqld
7. 確認防火墻是否開放 3306 端口
MySQL 默認端口是 3306
,linux為例確保服務器防火墻允許遠程訪問:
# 查看防火墻狀態(tài) firewall-cmd --list-all # 開放 3306 端口(僅 firewalld 示例) firewall-cmd --add-port=3306/tcp --permanent firewall-cmd --reload
8. 總結
要解決 MySQL 無法遠程連接的問題,可以按照下面的步驟排查:
- 修改
mysql.user
表,把 root 的Host
改為%
- 刷新權限
- 檢查是否可以鏈接,不可以的話需要檢查配置和端口防火墻
- 檢查
my.cnf
配置,確保bind-address
是0.0.0.0
- 檢查防火墻是否開放 3306 端口
到此這篇關于MySQL數(shù)據(jù)庫無法遠程連接問題的文章就介紹到這了,更多相關MySQL數(shù)據(jù)庫無法遠程連接內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
MySQL啟動報錯提示發(fā)生系統(tǒng)錯誤5,拒絕訪問的原因和解決方法
使用命令net start mysql啟動數(shù)據(jù)庫服務時候,出現(xiàn)如下錯誤提示發(fā)生系統(tǒng)錯誤5,拒絕訪問,所以本文給大家介紹了MySQL啟動報錯提示發(fā)生系統(tǒng)錯誤5,拒絕訪問的原因和解決方法,需要的朋友可以參考下2024-01-01Navicat連接linux虛擬機上的MySQL可能遇到的問題及排查方法
這篇文章主要介紹了Navicat連接linux虛擬機上的MySQL可能遇到的問題以及如何排查,本文給大家展示了問題描述及解決方法,需要的朋友可以參考下2024-02-02MYSQL METADATA LOCK(MDL LOCK) 理論及加鎖類型測試
這篇文章主要介紹了MYSQL METADATA LOCK(MDL LOCK)的內容,有理論知識和加鎖類型測試的以下代碼,感興趣的朋友請參考下午文2021-09-09MySQL空間函數(shù)ST_Distance_Sphere()的使用方式
這篇文章主要介紹了MySQL空間函數(shù)ST_Distance_Sphere()的使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11