如何使用 docker 将 Symfony4 连接到 mysql
How to connect Symfony4 to mysql using docker
我正在尝试将(本地开发)symfony4 连接到 docker 中的数据库,这是 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 文件中使用什么主机。
谢谢
你绑定了主机的3306端口,所以我们必须告诉Symfony使用这个端口。我们必须使用地址 127.0.0.1
因为 with localhost
, MySQL try to connect through a socket.
所以你应该得到这样的结果:
DATABASE_URL=mysql://USER:PASSWORD@127.0.0.1:3306/DATABASE_NAME
您可能需要配置对 MariaDB 的访问:
doctrine:
dbal:
# configure these for your database server
driver: 'pdo_mysql'
server_version: 'mariadb-10.2'
见
根据使用情况,您应该尝试不同的方法。如果您没有使用 docker_compose.yml
然后尝试使用主机名 0.0.0.0:3306
但在 dockerfile 的情况下例如 this (它用于 moodle 但可以完成工作)。
所以在后一种情况下,我使用 service 名称作为主机名以完成工作。通常我使用 docker-compose.yml
方法来配置我的 运行 环境。
另外请记住,使用 docker-compose.yml
还使用 .env
文件进行配置,因此它也可能导致冲突。
DATABASE_URL=mysql://user:password@mariadb:3306/databaseName
这个例子"mariadb"是容器别名。
我正在尝试将(本地开发)symfony4 连接到 docker 中的数据库,这是 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 文件中使用什么主机。
谢谢
你绑定了主机的3306端口,所以我们必须告诉Symfony使用这个端口。我们必须使用地址 127.0.0.1
因为 with localhost
, MySQL try to connect through a socket.
所以你应该得到这样的结果:
DATABASE_URL=mysql://USER:PASSWORD@127.0.0.1:3306/DATABASE_NAME
您可能需要配置对 MariaDB 的访问:
doctrine:
dbal:
# configure these for your database server
driver: 'pdo_mysql'
server_version: 'mariadb-10.2'
见
根据使用情况,您应该尝试不同的方法。如果您没有使用 docker_compose.yml
然后尝试使用主机名 0.0.0.0:3306
但在 dockerfile 的情况下例如 this (它用于 moodle 但可以完成工作)。
所以在后一种情况下,我使用 service 名称作为主机名以完成工作。通常我使用 docker-compose.yml
方法来配置我的 运行 环境。
另外请记住,使用 docker-compose.yml
还使用 .env
文件进行配置,因此它也可能导致冲突。
DATABASE_URL=mysql://user:password@mariadb:3306/databaseName
这个例子"mariadb"是容器别名。