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

MySQL 遠程連線「Lost connection at reading initial communication packet」:skip-name-resolve 一鍵修復

     編輯:MySQL 綜合教學

MySQL 遠程連線「Lost connection at reading initial communication packet」:skip-name-resolve 一鍵修復

重裝 MySQL/PHP 後遠程連線瞬間斷開,錯誤 Lost connection to MySQL server at 'reading initial communication packet', system error: 0。經排查,預設配置缺少 skip-name-resolve 導致 DNS 反解超時,單行配置即可修復。

一、問題現象

  • 本地連線正常;
  • 遠程連線客戶端(Navicat、命令列)在握手階段即斷開;
  • 錯誤碼 system error: 0 表明非網路層錯誤,而是 MySQL 內部邏輯中斷。

二、根因分析

MySQL 預設啟用 DNS 反向解析:收到連線 → 解析客戶端 IP 對應主機名 → 再解析主機名回 IP → 比對授權表。若 DNS 伺服器無回應或極慢,握手階段直接超時斷開。

三、修復步驟

  1. 編輯配置檔:
    vim /etc/mysql/my.cnf(或 /etc/my.cnf)
  2. 在 [mysqld] 區段新增:
    skip-name-resolve
  3. 若存在 bind-address = 127.0.0.1,同時註釋掉(# 開頭);
  4. 保存並重啟:
    /etc/init.d/mysql restart 或 systemctl restart mysql

四、副作用與對策

副作用說明對策
授權表 Host 欄不再支援主機名只能用 IP 或 %授權語句改用 IP:GRANT ... TO 'user'@'192.168.1.%'
內部複寫/集群可能受影響主從若用主機名授權會失效統一改用 IP 授權,或在 /etc/hosts 映射

五、驗證修復

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