使用symfony和MAMP时出现PDO连接错误

Joh*_*nes 11 php mysql doctrine symfony1 mamp

尝试时出现PDO php symfony doctrine:insert-sql
错误我得到的错误:

Warning: PDO::__construct(): [2002] Connection refused (trying to connect via tcp://127.0.0.1:3306) in /Users/johannes/Programmering/PHP/htdocs/symfony/sfprojects/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Connection.php on line 470

databases.yml里

    all:
    doctrine:
    class: sfDoctrineDatabase
    param:
      dsn: mysql:host=127.0.0.1;dbname=jobeet;
      username: root
      password: root

做一个 mysql -u root -p jobeet 有"根"作为密码,让我上网,所以没有问题存在.是的,我运行的mysql是MAMP的.

谢谢你的帮助.

小智 13

MAMP PRO 2.x
我只需取消选中MAMP控制面板上MySQL prefs中的"仅允许本地访问"即可解决此问题和许多类似问题.

在此输入图像描述

MAMP PRO 3.x
正如Kendrick所说: 在此输入图像描述


Jak*_*las 7

默认情况下,MAMP不允许TCP连接.您可以打开它或使用套接字.

改变你的dsn @Tom建议应该解决你的问题.虽然很奇怪但是使用localhost而不是127.0.0.1使得mysql通过套接字连接.

http://dev.mysql.com/doc/refman/5.0/en/connecting.html:

在Unix上,MySQL程序特别对待主机名localhost,其方式可能与您期望的与其他基于网络的程序相比有所不同.对于与localhost的连接,MySQL程序尝试使用Unix套接字文件连接到本地服务器.即使给出--port或-P选项指定端口号,也会发生这种情况.要确保客户端与本地服务器建立TCP/IP连接,请使用--host或-h指定主机名值127.0.0.1,或本地服务器的IP地址或名称.您还可以使用--protocol = TCP选项显式指定连接协议,即使对于localhost也是如此.