docker中的Mysql连接拒绝

所以我正在创建一个新的 symfony 4 项目,但我无法让 mysql 连接到我的 docker mysql。我做错了什么?


我试过更改 mysql 版本,将其组合起来并更新不同的 mysql 根和密码,但没有连接。


这是我用于 mysql 的 docker-compose.yml。


mysql:

        image: mysql:8

        container_name: sf4_mysql

        volumes:

            - .docker/data/db:/var/lib/mysql

        command:

            - "--default-authentication-plugin=mysql_native_password"

            - "--lower_case_table_names=1"        

        environment:

            MYSQL_ROOT_PASSWORD: root

            MYSQL_DATABASE: sf4

            MYSQL_USER: sf4

            MYSQL_PASSWORD: sf4

这是我的 .env DATABASE_URL=mysql://sf4:sf4@sf4_mysql:3306/sf4 中的 mysql Url


每次我做 ./bin/console 原则:数据库:创建,连接被拒绝。


只是试图创建一个数据库。


控制器


class HospitalAdminController extends AbstractController

{

    /**

     * @Route("/admin/hospital/new")

     */

    public function new(EntityManagerInterface $em)

    {

        $hospital = new Hospital();

        $hospital->setName('Example Hospital')

            ->setPhone(8175831483)

            ->setAddress('123 Avenue');


        $em->persist($hospital);

        $em->flush();



        return new Response(sprintf(

            'Hiya! New Hospital id: #%d phone:%s address%s',

            $hospital->getId(),

            $hospital->getPhone(),

            $hospital->getAddress()


        ));


}


潇湘沐
浏览 485回答 1
1回答

ibeautiful

您需要公开 mysql 端口。默认为 3306。请参阅端口发布以及更多特定于docker 上的 mysql-8 的示例为了检查 mysql 是否正在运行,最好在其客户端的终端内运行,这样可以最大限度地减少数据库本身的潜在错误源,不包括 php 中的潜在错误。
打开App,查看更多内容
随时随地看视频慕课网APP