【问题标题】:Doctrine (in symfony project) can not connect through socketDoctrine(在 symfony 项目中)无法通过套接字连接
【发布时间】:2009-12-16 16:50:24
【问题描述】:

我正在尝试将 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();
?>

它工作正常(它显示“hello world”)。 有人知道这是哪里来的吗?

非常感谢。

【问题讨论】:

    标签: php mysql symfony1 doctrine


    【解决方案1】:

    正如评论所暗示的那样,它可能就像在 localhost 字符串前面被遗忘的“host=”一样简单。要检查的另一件事是,有问题的 mysql 服务器实际上配置为允许通过套接字进行连接,而不是使用默认 TCP 端口的端口 3306。

    【讨论】:

    • 好的,谢谢!我可能在进行一些更改时丢失了它。但它仍然不起作用(同样的错误)。服务器必须配置为套接字连接?这是我客户的主机(它是一个很蹩脚的主机......),我不知道如何检查。你能帮忙吗 ?它与 PDO 连接有关吗?因为他们告诉我他们应该工作。
    • mysql配置文件中有两个设置,分别是socket和port。您可以同时运行它们,也可以只运行其中之一。一种检查方法是使用 mysql 命令行客户端并指定 --protocol=SOCKET 以测试套接字是否工作。
    • 好的,感谢您的帮助,我可以向技术服务解释问题,这是服务器的问题,他们正在修复它。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多