首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

虛擬機 Linux MySQL 遠程訪問失敗?兩種解決方案速查

     編輯:MySQL 綜合教學

虛擬機 Linux MySQL 遠程訪問失敗?兩種解決方案速查

虛擬機內 MySQL 預設僅允許本地連接,遠程報錯 ERROR 1130 (HY000): Host 'x.x.x.x' is not allowed to connect。本文提供兩種通用修復方案。

方案一:授權遠程用戶 + 防火牆放行 3306(推薦)

  1. 進入 MySQL 控制台:mysql -u root -p mysql
  2. 授權遠程訪問:
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'MyPassword' WITH GRANT OPTION;
    FLUSH PRIVILEGES;

    root@'%' 表示允許任意主機以 root 身份連接,生產環境建議改為具體 IP 或專用用戶。

  3. 修改 iptables 放行 3306:
    vi /etc/sysconfig/iptables
    # 在 COMMIT 前添加
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

    重啟防火牆:service iptables restart
    驗證:iptables -L 應包含 3306 ACCEPT 規則。

  4. 遠程測試:mysql -h 192.168.16.128 -u root -p 成功連接。

方案二:快速授權(僅解決權限,需防火牆已開放)

mysql -uroot -p
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'sy31214' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

避坑提醒

  • 雲服務器(阿里雲/AWS等)還需在安全組/防火牆控制台放行 3306。
  • MySQL 8.0+ 語法變更:CREATE USER 'root'@'%' IDENTIFIED BY 'pwd'; GRANT ALL ON *.* TO 'root'@'%';
  • 生產環境禁用 root 遠程登錄,創建專用應用賬號、限制來源 IP、強密碼策略。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved