2011-04-05 96 views
2

我試着通過一個PHP腳本連接到MySQL服務器在localhost:PHP:mysql_connect()函數:[2002]無連接可以作出,因爲Zielcomput(試圖通過TCP連接://本地主機:3306)

$mysql = mysql_connect('localhost', 'root', 'mysecret'); 

,但我總是得到消息:

mysql_connect()函數:[2002]它無法聯繫,因爲Zielcomput(試圖通過TCP連接://本地主機:3306)

我覺得這個德國消息的翻譯是:

的mysql_connect():2002年沒有這樣的文件或目錄(試圖通過TCP連接://本地主機:3306)

我可以使用phpMyAdmin用做憑證 - 所以他們是正確的和MySQL服務器運行的是基因的反彈。當運行從控制檯的MySQL客戶端我沒有一個問題:

的mysql -u根-p

輸入密碼:

歡迎MySQL的監測。命令終止與;或\克。

你的MySQL連接ID是86

Server版本:5.0.51a-24 + lenny5(Debian的)

類型的幫助;「爲幫助或「\ H」。鍵入「\ c」來清除緩衝區。

的MySQL>退出

再見

將A連接在通過telnet作品默認端口(3306)爲localhost但每次我失去的連接:

遠程登錄本地主機3306試圖

127.0.0.1 ...

連接到本地主機。

轉義字符爲 '^]'。

5.0.51a-24 + lenny5`w'V \ MJmg,< 42; rMkQ3IW [連接由外部主機關閉。

由於手冊向我解釋,我認爲這是回落到一個插座,如果「localhost」的使用。我無法找到我的Debian lenny中一個的mysql.sock - 所以我不能點mysql.default_socket到沒有路

也許我沒有正確的道路 - 將是很好,如果你能找出我的解決方案。

+0

我不會說德語,但我認爲這意味着「無法建立連接到目標計算機」或類似的東西。您是否嘗試過使用空字符串'「」'而不是密碼,因爲它是默認的localhost?這只是盲目的猜測。 – Wh1T3h4Ck5 2011-04-05 21:44:56

+2

翻譯就像「無法建立連接,因爲targetcomp ...」,並且那裏的消息被切斷。然而,嘗試一個現代的MySQL擴展(mysqli,..) – KingCrunch 2011-04-05 21:44:57

+0

你可以使用127.0.0.1而不是本地主機? – Wrikken 2011-04-05 21:44:59

回答

1

你應該能夠找到的MySQL。與襪子:

$ locate mysql.sock 

和編輯您php.ini相應:

mysql.default_socket = /path/to/mysql.sock 

重啓Apache ...

$ apachectl graceful 

...並確認插座是否設置正確:

// info.php 

phpinfo(); 
0

The套接字的位置應該在mysql .ini文件中指定。在debian系統上,它應該在/etc/mysql/mysql.cnf。在文件開頭附近尋找以'套接字'開頭的行。最有可能的設置爲/var/run/mysqld/mysql.sock

2

嘗試$mysql = mysql_connect('127.0.0.1', 'root', 'mysecret');通過TCP/IP進行連接。

0

大是正確的。在運行UX操作系統的終端中,鍵入:

netstat -ln | grep mysql 

這會給你你的sock文件的地址。將它與php.ini中的地址進行比較。如果是其他東西,那麼糾正它的地址netstat給了你以下Dae的建議。

是的,一種補救措施是將地址設置爲127.0.0.1,但這並不能真正解決您的問題。

相關問題