首页 文章

如何使用docker将Symfony4连接到mysql

提问于
浏览
2

我试图将(本地开发)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 回答

  • 0

    DATABASE_URL=mysql://user:password@mariadb:3306/databaseName

    此示例“mariadb”是容器别名 .

  • 1

    根据用途,您应该尝试不同的方法 . 如果你没有使用 docker_compose.yml 然后尝试使用主机名 0.0.0.0:3306 但是如果是dockerfile例如this(它适用于moodle但是完成了工作) .

    所以在后一种情况下,我使用 service 名称作为主机名来完成工作 . 通常我使用 docker-compose.yml 方法来配置我的运行环境 .

    另外请记住使用 docker-compose.yml 也是用户 .env 文件进行配置,因此它也可能导致冲突 .

  • 0

    您将端口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'
    

    MariaDB 10.0 JSON type with symfony 4

相关问题