我正在尝试 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 中但显示访问被拒绝错误
仅当容器启动时不存在数据库时,才会使用用户、密码和数据库变量。
您的数据库数据卷中很可能已有一个数据库。尝试执行
docker compose down -v
删除该卷。然后,当您再次启动容器时,将创建一个新卷,并使用变量来创建一个新数据库,其中包含具有指定值的用户和密码。
来自文档
请注意,如果您 使用已包含的数据目录启动容器 数据库:任何预先存在的数据库将始终保持不变 容器启动。