2011-03-25 22 views
0

我剛開始嘗試建立一個服務器/網站,並遇到可能是一個非常基本的問題。當我嘗試使用php腳本連接到已安裝的mysql服務器時,出現空白屏幕;例如php無法看到本地mysql服務器

<html> 
<body> 
<script src="http://protovis-js.googlecode.com/svn/trunk/protovis-r3.1.js" type="text/javascript"></script> 

<?php 
echo "Connecting..." 
$user="root"; 
$password="passwd"; 
$server="127.0.0.1"; 
mysql_connect($server,$user,$password); 
echo "Connected."; 

?> 
</body></html> 

顯示「正在連接...」,但從未達到「已連接」。代碼或數據庫沒有問題,因爲這在Aptana 2.05的瀏覽器中工作(從卸載開始)。它不適用於Firefox或Chrome。 Aptana使用了PHP的不同版本(5.2版本);從Chrome/Firefox訪問的phpinfo()爲5.3。 php.ini文件包含extension = mysql.so;否則我不知道設置是否正確。我看過的教程並沒有真正涵蓋這類事情......任何人都知道該怎麼做?

+0

mysql_connect在失敗時返回false,所以如果你這樣做:「$ cn = mysql_connect($ server,$ user,$ password);」您可以檢查$ cn的值以查看連接是否實際進行。 – jlmcdonald 2011-03-25 03:30:35

+0

你在端口3306上運行它嗎?如果不是默認端口 – Jason 2011-03-25 03:32:25

+0

@jlmcdonald,則需要在服務器「server:port」上指定端口號,它會在mysql_connect調用上崩潰 - 按照您的建議仍然沒有產生任何東西,解釋器永遠不會到達回聲/打印語句。 – 2011-03-25 03:36:38

回答

0

哈!只是沒有安裝php5-mysql軟件包。顯然,使用php和mysql本身是不夠的。安裝php5-mysql,連接工作。

1

您使用的瀏覽器與運行在服務器上的php腳本是否連接到數據庫無關。

我建議檢查服務器日誌,或添加一些代碼來實際檢查,看看是怎麼回事:

$link = mysql_connect($server,$user,$password); 
if (!$link) { 
    die('Could not connect: ' . mysql_error()); 
} 
+0

感謝您的建議,但正如我指出解釋器崩潰在基於腳本內部診斷的任何報告錯誤狀態之前。服務器日誌不顯示任何事務。 – 2011-03-25 04:10:06

0

你的MySQL實例可以配置爲不響應爲localhost。有兩種方式連接到MySQL服務器。通過網絡連接(ip和端口)或套接字連接,只能在正在使用的機器上工作。您的MySQL服務器可能配置爲偵聽套接字連接,但不偵聽網絡。

  1. 嘗試使用mysql命令行工具作爲連接「的mysql -h 127.0.0.1 -uroot -ppassword mysql的」
  2. 嘗試在命令行,而不是瀏覽器中運行你的PHP腳本。
相關問題