2014-07-18 67 views
0

我有一個奇怪的問題。即使shell客戶端成功,php mysql連接失敗

我試圖從一臺Linux主機連接到Windows主機上的遠程MySQL服務器。

如果我嘗試使用mysql客戶端從shell進行連接,它可以很好地工作。

#mysql -h 192.168.x.x -u MyUser -pMyPassword 

我也試過從一個簡單的python腳本連接,它的工作原理也是如此。

但是,如果我嘗試從一個PHP腳本進行連接,它將失敗,並顯示「無法連接到'192.168.x.x'(13)」錯誤的MySQL服務器。

mysql_connect ('192.168.x.x', 'MyUser', 'MyPassword'); 

遠程服務器運行在Windows 5.0.41社區-NT(約OS版本號信息) 客戶機運行的CentOS 6.2,它自身配備了一個MySQL服務器61年5月1日。 PHP MySQL模塊使用sampe API版本5.1.61

這個問題必須在PHP內部,因爲從shell客戶端(甚至是從python腳本)連接成功,但我沒有線索。

任何幫助將受到高度讚賞。

+0

http://stackoverflow.com/questions/4078205/php-cant-connect-to-mysql-with-error-13-but-command-line-can – gray

+0

非常感謝。這解決了我的問題。該死的SE! – user3852536

回答

1

使用簡單的PHP的方式來連接MySQL:

<?php 
    $link = mysql_connect('192.168.x.x', 'MyUser', 'MyPassword'); 
    if (!$link) { 
     die('Could not connect: ' . mysql_error()); 
    } 
    echo 'Connected successfully'; 
    mysql_close($link); 
?> 

請,向我們展示了完整的代碼。

+1

我發佈了能夠重現問題的最小代碼量。這與你的一樣,但有很多調試行和精美的打印指令。無論如何,這個問題解決了。問題出在httpd中打開的連接中,SELinux默認禁止該連接。 – user3852536