docker SQLSTATE[HY000] [1045]用户'user'@'172.18.0.3'的访问被拒绝

问题描述 投票:0回答:1

我正在尝试 dockerize laravel 应用程序,但收到此错误

SQLSTATE[HY000] [1045] 用户“user”@“172.18.0.3”的访问被拒绝

docker-compose.yml

version: "3.8"
services:

    # Database Server
    database:
        image: mysql:8.4.0
        ports:
            -   3306:3306
        environment:
            - MYSQL_DATABASE="${DB_DATABASE}"
            - MYSQL_USER="${DB_USERNAME}"
            - MYSQL_PASSWORD=password
        volumes:
            - db-data:/var/lib/mysql

    # PHP Service
    php:
        build:
            context: .
            target: php
            args:
                - APP_ENV="${APP_ENV}"
        environment:
            - APP_ENV="${APP_ENV}"
            - CONTAINER_ROLE=app
        working_dir: /var/www
        volumes:
            - ./:/var/www
        ports:
            - 8000:8000
        depends_on:
            - database
            
    
    phpmyadmin:
        image: phpmyadmin
        restart: always
        ports:
          - 8080:80
        environment:
          - PMA_ARBITRARY=1

volumes:
    db-data: ~

.env

DB_CONNECTION=mysql
DB_HOST=database
DB_PORT=3306
DB_DATABASE=my_database
DB_USERNAME=user
DB_PASSWORD=password

我尝试使用 用户名: 用户 密码:密码

在 phpmyadmin 中但显示访问被拒绝错误

php mysql laravel docker
1个回答
0
投票

仅当容器启动时不存在数据库时,才会使用用户、密码和数据库变量。

您的数据库数据卷中很可能已有一个数据库。尝试执行

docker compose down -v
删除该卷。然后,当您再次启动容器时,将创建一个新卷,并使用变量来创建一个新数据库,其中包含具有指定值的用户和密码。

来自文档

请注意,如果您 使用已包含的数据目录启动容器 数据库:任何预先存在的数据库将始终保持不变 容器启动。

© www.soinside.com 2019 - 2024. All rights reserved.