2015-11-20 50 views
2

我有Windows 7系統,並安裝在其中的xampp。從遠程系統的PHP的XAMPP Mysql連接錯誤

我可以使用http://ipaddress:8080/phpmyadmin從遠程系統訪問的phpmyadmin。

但如果我嘗試從PHP訪問它,它給我的錯誤:

Warning: mysqli::mysqli(): (HY000/2013): Lost connection to MySQL server at 'reading initial communication packet', system error: 20

我的PHP代碼是

define("HOST", "X.X.X.X"); 
define("PORT", "port");  // The host you want to connect to. 
define("USER", "user"); // The database username. 
define("PASSWORD", "password"); // The database password. 
define("DATABASE", "DBname"); // The database name. 

$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE, PORT); 
// or without port $mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE); 

if ($mysqli->connect_errno) { 
    printf("Connect failed: %s\n", $mysqli->connect_error); 
    exit(); 
} 

我也曾嘗試防火牆關閉,也允許端口3306到防火牆,但沒有運氣。將主機的所有權限授予此用戶(%)。

我一直在使用bind_address = 0.0.0.0,評論線也試過,也bind_address = X.X.X.X(我的IP)。

也嘗試將套接字類型從「MySQL」更改爲「TCP/IP」。 skip-networking行也是默認的註釋。

我已經嘗試使用從命令迅速獲得:

的MySQL -h XXXX -u根-p

這將使錯誤:

Warning: mysqli::mysqli(): (HY000/2003): Can't connect to MySQL server on 'X.X.X.X' (110).

在連接同一系統中使用本地主機字符串它工作正常。

我錯了我無法弄清楚。我搜索並嘗試了所有可能的解決方案。 感謝您的幫助。

注:而不是上面,現在我的conf文件一樣在安裝時。請不要將此問題標記爲重複。

編輯:@Jay布蘭查德,正如我剛纔提到的是解決方案還,在這種情況下,系統錯誤:0,在我的情況下系統錯誤:20.感謝您的幫助。

+1

的可能的複製[在「讀取初始通信分組」迷失連接到MySQL服務器,系統錯誤:0](http://stackoverflow.com/questions/5755819/lost-connection-to-mysql-server-at- read-initial-communication-packet-syste) –

+0

我對telnet不太熟悉,但是我試過使用這個命令「telnet xxxx 3306」。但是我收到這條消息 - 「telnet:無法連接到遠程主機:連接超時」 – herr

+0

它表明端口未打開?您是否嘗試過3306的在線端口掃描?這將確認該端口是否打開? –

回答

0

我的研究說,在SQL錯誤20意味着它是由未授予的系統管理員權限的用戶跑去。這限制了sql server的能力。解決這個問題的方法是確保用戶服務器正在從管理權限運行。這可以在具有管理權限的Windows用戶的控制面板中完成。