我在Docker上使用Symfony 4创建了一个项目,但遇到了一个小问题。每当我尝试通过Doctrine函数对数据库执行任何操作(在我的情况下,为flush()
或find()
)时,都会收到SQL错误:
SQLSTATE [HY000] [2002]连接被拒绝。
我用Google搜索了问题,并找到了解决方法,将127.0.0.1
文件中数据库URL变量中的.env
更改为localhost
,但是后来我开始遇到另一个错误:
SQLSTATE [HY000] [2002]没有这样的文件或目录
具有讽刺意味的是,当我用谷歌搜索时,我得到了将localhost
改回127.0.0.1
的建议,所以现在我陷入了这两个问题之间。
与数据库相关的所有其他内容(例如我在PhpStorm上使用的数据库视图或与Doctrine相关的控制台命令)都可以正常工作。
可能是什么问题?我要添加.env
文件和docker-compose.yml
文件的与SQL相关的部分,但是请告诉我是否可以提供其他有助于识别问题的代码。
.env文件:
APP_ENV=dev
DB_USER=nox
DB_PASS=password
DATABASE_URL=mysql://nox:password@localhost:3306/project
RABBIT_MQ_MANAGEMENT_PORT=15672
MYSQL_PORT=3306
NGINX_PORT=8886
docker-compose.yml文件中的SQL部分:
mysql:
image: mysql:5.7
volumes:
- ./docker/mysql/data:/var/lib/mysql
ports:
- 127.0.0.1:${MYSQL_PORT}:3306
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DB_NAME: ${MYSQL_DB_NAME}
container_name: core_mysql