You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Symfony中Doctrine无法连接MAMP本地MySQL数据库求助

搞定Symfony + MAMP MySQL连接失败(SQLSTATE[HY000] [2002])

我前段时间做学校Symfony项目的时候,跟你碰到了一模一样的坑!跟着官网教程一步步来,结果Doctrine死活连不上MAMP跑的本地MySQL数据库,执行php bin/console doctrine:database:create这类数据库命令全失败,报错全是:

In AbstractMySQLDriver.php line 93:
An exception occurred in the driver: SQLSTATE[HY000] [2002] No such file or directory
In PDOConnection.php line 31:
SQLSTATE[HY000] [2002] No such file or directory
In PDOConnection.php line 27:
SQLSTATE[HY000] [2002] No such file or directory

明明PHPMyAdmin能正常连数据库,我改了.env里的DATABASE_URL,还建了sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock mysql.sock的符号链接,还是没用,折腾了好久才找到解决办法,分享给你:

问题根源

MAMP的MySQL默认端口是8889(你.env里写的8888是MAMP的Apache端口,搞混了),而且Doctrine需要明确指定unix socket的路径才能正确连接MAMP的MySQL实例。

解决步骤

  • 修正.env中的DATABASE_URL
    把原来的配置替换成下面的内容:

    DATABASE_URL=mysql://root:root@127.0.0.1:8889/db?unix_socket=/Applications/MAMP/tmp/mysql/mysql.sock
    

    这里要注意三个关键点:

    1. 端口从8888改成8889
    2. 加上unix_socket参数,指向MAMP的mysql.sock绝对路径
    3. 确保账号密码是MAMP的默认root/root(如果你改过密码要对应调整)
  • 清除缓存让配置生效
    执行命令清除Symfony缓存,确保新的数据库配置被加载:

    php bin/console cache:clear
    
  • 再次尝试数据库操作
    现在再执行创建数据库的命令,应该就能成功了:

    php bin/console doctrine:database:create
    

如果还是不行,可以检查下MAMP的MySQL服务是不是正常启动了,或者确认你的项目有没有其他地方覆盖了数据库配置(比如config/packages/doctrine.yaml里的设置)。

内容的提问来源于stack exchange,提问作者user12296041

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:26:57