MySQL開(kāi)啟遠(yuǎn)程訪問(wèn)權(quán)限的完整步驟記錄
要在MySQL中開(kāi)啟遠(yuǎn)程訪問(wèn)權(quán)限,需完成以下步驟:
1. 登錄MySQL服務(wù)器
mysql -u root -p # 輸入root密碼進(jìn)入MySQL命令行
2. 創(chuàng)建允許遠(yuǎn)程訪問(wèn)的用戶(hù)(或修改現(xiàn)有用戶(hù))
方案1:創(chuàng)建新用戶(hù)并授權(quán)
-- 創(chuàng)建用戶(hù)('username'替換為用戶(hù)名,'password'替換為密碼,'remote_ip'替換為遠(yuǎn)程客戶(hù)端IP或'%'允許所有IP) CREATE USER 'username'@'remote_ip' IDENTIFIED BY 'password'; -- 授予權(quán)限(建議按需授權(quán),此處示例授予所有數(shù)據(jù)庫(kù)的完全權(quán)限) GRANT ALL PRIVILEGES ON *.* TO 'username'@'remote_ip' WITH GRANT OPTION; -- 刷新權(quán)限 FLUSH PRIVILEGES;
方案2:修改root用戶(hù)允許遠(yuǎn)程訪問(wèn)(不推薦,存在安全風(fēng)險(xiǎn))
-- 更新root用戶(hù)的host為'%'(允許任意IP) UPDATE mysql.user SET Host='%' WHERE User='root' AND Host='localhost'; -- 刷新權(quán)限 FLUSH PRIVILEGES;
3. 修改MySQL配置文件
找到配置文件:
Linux:
/etc/mysql/mysql.conf.d/mysqld.cnf或/etc/my.cnfWindows:
C:\ProgramData\MySQL\MySQL Server X.X\my.ini
修改配置:
[mysqld] bind-address = 0.0.0.0 # 允許所有IP連接(默認(rèn)值為127.0.0.1,僅限本地)
4. 重啟MySQL服務(wù)
Linux:
sudo systemctl restart mysql # Ubuntu/Debian sudo systemctl restart mysqld # CentOS/RHEL
Windows:
通過(guò)服務(wù)管理器重啟 "MySQLXX" 服務(wù)。
5. 開(kāi)放防火墻端口(默認(rèn)3306)
Linux (ufw):
sudo ufw allow 3306/tcp sudo ufw reload
Linux (firewalld):
sudo firewall-cmd --permanent --add-port=3306/tcp sudo firewall-cmd --reload
Windows:
控制面板 → Windows Defender 防火墻 → 高級(jí)設(shè)置 → 入站規(guī)則 → 新建規(guī)則(端口3306)。
6. 驗(yàn)證遠(yuǎn)程連接
# 從另一臺(tái)機(jī)器測(cè)試連接(替換IP、用戶(hù)名、密碼) mysql -h <mysql_server_ip> -u username -p
常見(jiàn)問(wèn)題排查
1. 錯(cuò)誤:ERROR 2003 (HY000): Can't connect to MySQL server
原因:防火墻未放行端口或MySQL未監(jiān)聽(tīng)外網(wǎng)。
解決:
# 檢查端口監(jiān)聽(tīng)狀態(tài) netstat -tuln | grep 3306 # 應(yīng)顯示:0.0.0.0:3306 或 :::3306
2. 錯(cuò)誤:ERROR 1130 (HY000): Host 'xxx.xxx.xxx.xxx' is not allowed
原因:用戶(hù)權(quán)限未正確配置。
解決:
-- 檢查用戶(hù)權(quán)限 SELECT Host, User FROM mysql.user; -- 確保目標(biāo)IP或'%'存在授權(quán)記錄
3. 錯(cuò)誤:ERROR 1045 (28000): Access denied
原因:密碼錯(cuò)誤或用戶(hù)無(wú)權(quán)限。
解決:確認(rèn)用戶(hù)名、密碼及授權(quán)IP是否匹配。
安全建議
最小權(quán)限原則:按需授予權(quán)限(如
SELECT, INSERT而非ALL PRIVILEGES)。限制訪問(wèn)IP:避免使用
'%',指定具體IP或網(wǎng)段。啟用SSL加密(可選):
ALTER USER 'username'@'remote_ip' REQUIRE SSL;
通過(guò)以上步驟,即可安全地開(kāi)啟MySQL遠(yuǎn)程訪問(wèn)權(quán)限。
總結(jié)
到此這篇關(guān)于MySQL開(kāi)啟遠(yuǎn)程訪問(wèn)權(quán)限的文章就介紹到這了,更多相關(guān)MySQL開(kāi)啟遠(yuǎn)程訪問(wèn)權(quán)限內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MySQL數(shù)據(jù)庫(kù)遠(yuǎn)程訪問(wèn)權(quán)限如何打開(kāi)(兩種方法)
- MySQL數(shù)據(jù)庫(kù)設(shè)置遠(yuǎn)程訪問(wèn)權(quán)限方法小結(jié)
- MYSQL開(kāi)啟遠(yuǎn)程訪問(wèn)權(quán)限的方法
- MySQL開(kāi)啟遠(yuǎn)程訪問(wèn)權(quán)限的最新方法
- MySQL數(shù)據(jù)庫(kù)遠(yuǎn)程訪問(wèn)權(quán)限設(shè)置方式
- mysql授予用戶(hù)遠(yuǎn)程訪問(wèn)權(quán)限的實(shí)現(xiàn)
- 開(kāi)啟MySQL遠(yuǎn)程訪問(wèn)權(quán)限、允許遠(yuǎn)程連接方式
相關(guān)文章
MySQL中的LOCATE和POSITION函數(shù)使用方法
不常用:MySQL中的LOCATE和POSITION函數(shù)2010-02-02
MySQL中聯(lián)表查詢(xún)優(yōu)化的實(shí)戰(zhàn)指南
這篇文章主要介紹了MySQL在處理多表關(guān)聯(lián)查詢(xún)性能問(wèn)題時(shí)的索引優(yōu)化策略,重點(diǎn)介紹了小表驅(qū)動(dòng)的聯(lián)合索引設(shè)計(jì)原則,以及覆蓋索引和定期分析的重要性,通過(guò)實(shí)際案例展示了優(yōu)化前后性能的顯著提升2026-06-06
MySQL使用SHOW PROCESSLIST的實(shí)現(xiàn)
本文主要介紹了MySQL使用SHOW PROCESSLIST的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-03-03
如何查本地mysql的username和密碼及更新密碼幾種方式
這篇文章主要介紹了光宇如何查找本地MySQL數(shù)據(jù)庫(kù)的用戶(hù)名和密碼,包括查看當(dāng)前用戶(hù)、列出所有用戶(hù)、重置密碼以及檢查配置文件,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-11-11
mysql聯(lián)合索引的實(shí)現(xiàn)示例
聯(lián)合索引也叫組合索引或多列索引,是指在MySQL中對(duì)一個(gè)表的多個(gè)列共同建立的索引,與單列索引不同,聯(lián)合索引是同時(shí)對(duì)多個(gè)列的值進(jìn)行排序和存儲(chǔ)的索引結(jié)構(gòu),下面就來(lái)介紹一下如何使用2025-12-12
MySQL中觸發(fā)器的基礎(chǔ)學(xué)習(xí)教程
這篇文章主要介紹了MySQL中觸發(fā)器的基礎(chǔ)學(xué)習(xí)教程,包括對(duì)觸發(fā)器的創(chuàng)建和管理等基本知識(shí),著力推薦!需要的朋友可以參考下2015-12-12
MySQL分組排序取每組第一條數(shù)據(jù)的實(shí)現(xiàn)
最近有個(gè)需求MySQL根據(jù)某一個(gè)字段分組,然后組內(nèi)排序,最后每組取排序后的第一條數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-08-08

