2009-12-16 54 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

相关问题