首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 開啟遠程訪問授權:GRANT 通配符主機、flush privileges 生效

     編輯:MySQL 資料庫相關知識

MySQL 默認僅允許本地連接(root@localhost),遠程連接需顯式授權。本文給出標準授權流程、通配符主機用法、防火牆配置、驗證步驟,並說明 db 表庫級權限的補充管理。

一、標準授權流程

  1. 本地登錄 root
    mysql -h127.0.0.1 -uroot -p
  2. 查看現有用戶主機分佈
    USE mysql;
    SELECT Host, User FROM user;
    -- 輸出示例:
    -- +-----------+------+
    -- | Host      | User |
    -- +-----------+------+
    -- | localhost | root |
    -- +-----------+------+
  3. 授權遠程訪問(通配符 % 表示任意主機)
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'StrongPass123!' WITH GRANT OPTION;
    FLUSH PRIVILEGES;

    參數解讀:

    • *.*:所有庫所有表
    • 'root'@'%':用戶 root,允許任意 IP 連接
    • IDENTIFIED BY:設置/更新密碼(MySQL 5.7+ 建議改用 ALTER USER)
    • WITH GRANT OPTION:允許該用戶再授權(謹慎給予)

  4. 驗證授權生效
    SELECT Host, User FROM user;
    -- 應新增一行:% | root
    
    -- 遠程機器測試
    mysql -h -uroot -p'StrongPass123!' -e "SELECT VERSION();"

二、精細授權最佳實踐(生產環境推薦)

-- 1. 創建專用遠程用戶(不用 root)
CREATE USER 'app_remote'@'10.0.0.%' IDENTIFIED BY 'AppPass123!';

-- 2. 僅授業務庫必要權限
GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE ON `biz_db`.* TO 'app_remote'@'10.0.0.%';

-- 3. 不授 GRANT OPTION、DROP、ALTER、CREATE、FILE、SHUTDOWN、PROCESS、SUPER

FLUSH PRIVILEGES;

三、庫級權限補充(db 表)

若需同一用戶對不同庫不同權限,可直接操作 mysql.db 表或多次 GRANT ON db.*。GRANT 會自動維護 db、tables_priv、columns_priv。

四、防火牆與網絡層放行

# Linux iptables
iptables -A INPUT -p tcp --dport 3306 -s 10.0.0.0/24 -j ACCEPT

# 阿里云/AWS 安全組:入站規則 3306/TCP 來源 10.0.0.0/24

# MySQL 配置綁定地址(/etc/my.cnf)
[mysqld]
bind-address = 0.0.0.0  # 監聽所有網卡,或具體內網 IP

五、常見失敗排查

現象原因對策
Access denied for user 'root'@'192.168.1.5'用戶主機不匹配(無 root@% 或 root@192.168.1.%)補授權或改用戶主機
連接超時 Can't connect to MySQL server防火牆阻攔 / bind-address=127.0.0.1 / 安全組未放行檢查網絡層、my.cnf、雲廠商安全組
Authentication plugin 'caching_sha2_password' not supported客戶端驅動過舊升級驅動或 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'pass';
授權後不生效未執行 FLUSH PRIVILEGES(手工改表時)GRANT 自動刷新,手工改表需執行

「最小權限、專用賬號、網絡層放行、驗證生效」四步走,安全開啟 MySQL 遠程訪問。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved