我试图将(本地开发)symfony4连接到docker中的db,这是docker容器
83d1b68ce44a cytopia/mariadb-10.1:latest "/docker-entrypoint.…" 3 days ago Up About an hour 0.0.0.0:3306->3306/tcp devilbox_mysql_1
web正在运行并完全配置,我不明白我应该在.env文件中使用什么主机 .
谢谢
3 回答
DATABASE_URL=mysql://user:password@mariadb:3306/databaseName
此示例“mariadb”是容器别名 .
根据用途,您应该尝试不同的方法 . 如果你没有使用
docker_compose.yml
然后尝试使用主机名0.0.0.0:3306
但是如果是dockerfile例如this(它适用于moodle但是完成了工作) .所以在后一种情况下,我使用 service 名称作为主机名来完成工作 . 通常我使用
docker-compose.yml
方法来配置我的运行环境 .另外请记住使用
docker-compose.yml
也是用户.env
文件进行配置,因此它也可能导致冲突 .您将端口3306绑定到主机,因此我们必须告诉Symfony使用此端口 . 我们必须使用地址
127.0.0.1
因为with localhost, MySQL try to connect through a socket .所以你应该得到这样的东西:
您可能需要配置对MariaDB的访问权限:
见MariaDB 10.0 JSON type with symfony 4