2026-06-11 配置 **MySQL**,使其允許外部 IP 地址連接

2026-06-11 配置 MySQL,使其允許外部 IP 地址連接

我:
我的 mysql 放在 /usr/local/mysql/bin/mysql
然後我要設定 my.cnf 要外部ip 可以連接

GPT:
如果您想要配置 MySQL,使其允許外部 IP 地址連接,您需要修改 my.cnf 配置文件中的 bind-address 設定。以下是具體步驟:

1. 創建或編輯 my.cnf 文件

由於您的 MySQL 安裝在 **/usr/local/mysql/bin/mysql**,您的 my.cnf 文件可能不存在或者不在常見的系統目錄中。因此,您可以在適當的目錄中創建一個 my.cnf 文件,例如放在 /etc//usr/local/mysql/etc/ 中。

使用以下命令來創建或編輯 my.cnf 文件:

1
sudo nano /etc/my.cnf

或者:

1
sudo nano /usr/local/mysql/etc/my.cnf

2. 配置 my.cnf 文件允許外部連接

my.cnf 文件中,找到 [mysqld] 區段,並添加或修改以下內容:

1
2
[mysqld]
bind-address = 0.0.0.0
  • **bind-address = 0.0.0.0**:將 bind-address 設置為 0.0.0.0,這樣 MySQL 將接受來自所有 IP 地址的連接。
  • 您也可以設置為特定的 IP 地址,以只允許從特定外部 IP 連接。

3. 檢查防火牆設置

確保您的防火牆允許 MySQL 的端口(默認是 3306)接受外部連接。

  • 如果您在使用 macOS 防火牆,確保防火牆允許 3306 端口的流量。
  • 如果有路由器,還需要確保路由器允許外部訪問該端口。

4. 重啟 MySQL 服務

在完成 my.cnf 文件的編輯後,您需要重啟 MySQL 服務以應用更改:

  1. 如果 MySQL 是使用手動安裝的,請使用以下命令重啟服務:

    1
    sudo /usr/local/mysql/support-files/mysql.server restart
  2. 如果 MySQL 是通過 Homebrew 安裝的,可以使用以下命令:

    1
    brew services restart mysql

5. 創建或更新用戶賬戶,允許外部連接

默認情況下,MySQL 的 root 用戶只允許從本地(localhost)連接。如果需要允許外部 IP 連接,您需要創建一個可以外部訪問的用戶賬戶,或者為現有用戶賬戶授予訪問權限。

創建一個可以遠程連接的用戶

進入 MySQL,然後執行以下命令來創建一個新用戶,允許所有 IP 進行連接:

1
2
3
CREATE USER 'newuser'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
  • **'newuser'@'%'**:% 表示允許任何 IP 地址連接。
  • **GRANT ALL PRIVILEGES**:授予該用戶所有權限,您可以根據需要選擇具體權限。

更新現有的 root 賬戶權限

如果希望使 root 用戶可以從外部訪問,可以使用以下命令:

1
2
UPDATE mysql.user SET host = '%' WHERE user = 'root';
FLUSH PRIVILEGES;

這將允許 root 用戶從任何 IP 地址進行連接。

6. 測試外部連接

  • 從另一台設備上,使用 MySQL 客戶端嘗試連接到您的 MySQL 伺服器:

    1
    mysql -u newuser -p -h YOUR_SERVER_IP

    輸入密碼後,應該能成功連接到伺服器。

小結

  • 編輯 my.cnf 文件,將 bind-address 設置為 0.0.0.0 以允許所有外部連接。
  • 重啟 MySQL 服務 使配置生效。
  • 創建新用戶或更新現有用戶,授予遠程訪問權限。
  • 確保防火牆和路由器允許 3306 端口的外部連接。

這些步驟應該能幫助您配置 MySQL 以允許外部 IP 的連接。如果有其他問題或遇到困難,隨時告訴我!