2009-12-16 56 views
1

我正在嘗試在客戶端服務器上進行symfony項目的生產。 該網站的工作我們公司的服務器上很好,但現在我有這樣的錯誤:主義(在symfony項目中)無法通過套接字連接

500 | Internal Server Error | Doctrine_Connection_Exception 
PDO Connection Error: SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 

這裏是database.yml中:

all: 
    doctrine: 
    class: sfDoctrineDatabase 
    param: 
     dsn: 'mysql:host=localhost;dbname=24DLJLRR1' 
     username: xxxxxxxxxx 
     password: xxxxxxxxxx 

而且,如果我嘗試測試的mysql_connect:

<?php 
    mysql_connect("localhost", "xxxxxxxxxx", "xxxxxxxxxx"); 
    mysql_select_db("24DLJLRR1"); 
    $answer = mysql_query("SELECT * FROM video_games") or die(mysql_error()); 
    echo 'hello world' 
    mysql_close(); 
?> 

它工作正常(它顯示'你好世界')。有人知道這是從哪裏來的嗎?

非常感謝。

+1

你忘了'host =' – develop7 2009-12-16 18:16:12

+0

是的,謝謝你! – Julien 2009-12-16 20:48:45

回答

2

正如評論所示,它可能就像在localhost字符串前面忘記「host =」一樣簡單。另一件需要檢查的問題是,問題中的mysql服務器實際上被配置爲允許通過套接字進行連接,而不是使用作爲默認TCP端口的端口3306。

+0

是的,謝謝!我正在進行一些更改時可能會丟失它。 但它仍然不起作用(同樣的錯誤)。 服務器必須配置爲套接字連接? 這是我的客戶的主機(這是一個非常蹩腳的主機...),我不知道如何檢查。你能幫忙嗎 ? 它與PDO連接有關嗎?因爲他們告訴我他們應該工作。 – Julien 2009-12-16 20:53:12

+0

mysql配置文件中有兩個設置,分別是套接字和端口。您可以運行它們或僅運行其中一個。一種檢查方法是使用mysql命令行客戶端並指定--protocol = SOCKET來測試套接字的工作方式。 – 2009-12-16 21:25:46

+0

好的,感謝您的幫助,我可以向技術服務部門解釋問題,這是服務器的問題,他們正在修復它。 非常感謝。 – Julien 2009-12-17 17:39:10

相關問題