2010-05-04 173 views
0

我有以下的PHP代碼連接到我的分貝:麻煩連接到MySQL數據庫(PHP)

<?php 
ob_start(); 
$host="localhost"; // Host name 
$username="root"; // Mysql username 
$password=""; // Mysql password 
$db_name="test"; // Database name 
$tbl_name="members"; // Table name 

// Connect to server and select databse. 
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 

?> 

不過,我得到以下錯誤:

Warning: mysql_connect() [function.mysql-connect]: [2002] A 
connection attempt failed because the connected party did not (trying 
to connect via tcp://localhost:3306) in C:\Program Files (x86)\EasyPHP- 
5.3.2i\www\checklogin.php on line 11 

Warning: mysql_connect() [function.mysql-connect]: A connection 
attempt failed because the connected party did not properly respond 
after a period of time, or established connection failed because 
connected host has failed to respond. in C:\Program Files (x86)\EasyPHP- 
5.3.2i\www\checklogin.php on line 11 

Fatal error: Maximum execution time of 30 seconds exceeded in 
C:\Program Files (x86)\EasyPHP-5.3.2i\www\checklogin.php on line 11 

我能夠添加一個數據庫/表通過phpmyadmin,但我不能使用PHP連接。

以下是我的phpmyadmin頁面的屏幕截圖: enter image description here 可能是什麼問題?

+0

這是一個家庭服務器?我有主機,我無法通過本地主機連接。 – Galen 2010-05-04 21:01:24

+0

@galen好,因爲phpMyAdmin是工作,我們可以假設它的工作在localhost – nc3b 2010-05-04 21:03:18

+0

@ nc3b:我不同意。如果你檢查人員的答案,你會發現我是對的。 – Galen 2010-05-04 22:58:19

回答

4

檢查以下內容:

  1. 是MySQL的運行?
  2. 是否有防火牆阻止您的計算機在端口3306上接受與MySQL的連接?
  3. MySQL是在端口3306上偵聽,還是被改爲非標準的東西?
  4. 一個奇怪的一個,但嘗試從localhost更改爲127.0.0.1

基本上,你得到的錯誤意味着它不能連接到服務器。它向localhost:3306發送請求,並且只等待回覆。它沒有得到它,這意味着請求被阻止(防火牆)或忽略(MySQL沒有運行和/或正在監聽不同的端口)

如果phpMyAdmin附帶MySQL安裝,那麼它可能是它被配置爲使用適當的不同端口

+2

#4似乎工作,謝謝。 – ajoe 2010-05-04 22:04:23

+0

@ user332817如果是這樣的話,你應該看看你的主機文件,在Windows上的'c:\ windows \ system32 \ drivers \ etc \ HOSTS',並確保它有一行像127.0.0.1 localhost'。這將確保輸入'localhost'實際上意味着映射到您的本地主機。 – Tarka 2010-05-05 02:58:05

0

也許你的MySQL沒有使用本地主機的TCP。請嘗試

$host='/tmp/mysql.sock'; 

或它可能使用的任何套接字。

1

哈我也有這個問題,現在我通過改變端口號例如「find.db.13344.hostedfind.com:3306」來解決它。之前,我的連接試圖訪問「find.db.13344.hostedfind.com:3307」,所以它給了我這個錯誤 警告:mysql_connect()[function.mysql-connect]:[2002]連接嘗試失敗,因爲連接方沒有(嘗試通過tcp:// localhost:3306連接)。

0

我也注意到這個問題linux版本的xampp與MySSQL 5.6.12-日誌在網絡上運行。此外,在MySQL論壇(http://forums.mysql.com/read.php?52,294772,294772)中提出的問題與此類似,但未得到滿意的回答。

我注意到的情況是,這可能是由於網絡不穩定或者同時連接到數據庫服務器的網絡中其他開發人員的太多mysql連接造​​成的 - 並且端口號保持一小部分時間。它不經常涉及到配置的連接時間,也沒有最大的執行時間,也沒有錯誤的用戶名/密碼等。

令人驚訝的是,相同的腳本,相同的密碼和相同的網絡允許相同的服務器在第二次嘗試時正常運行 - 而無需做任何修補。

因此,它應該是你暫時不穩定電網波動(或忙MySQL連接),即亮和滅,和你的腳本試圖連接到服務器時,網絡系統進行停機很短的時間。

這是有關這個錯誤的個人經驗推測的答案,可能不準確。

但是,如果錯誤信息是持久性的,你應該需要做的事情。