我已经使用 docker-compose 开始了一个新项目,但是我的迁移和数据库查询出现错误 Access denied for user 'data-jobs'@'172.18.0.3' (using password: YES)
我有 2 个配置文件。 .env
用于我的 laravel 配置,.db.env
用于我的数据库环境变量。我收到此错误是因为我更改了 .env 文件中的值,但没有更改 .db.env 文件中的值。
我的问题是:
我怎样才能只使用一个配置键将 MYSQL_PASSWORD
和 DB_PASSWORD
传递给 Laravel 和 MariaDB,以防止我再次犯这个错误?
最佳答案
您的 env 变量名称错误,Docker mysql 镜像使用了不同的键。
MYSQL_USER
MYSQL_DATABASE
....
https://hub.docker.com/_/mariadb https://hub.docker.com/_/mysql
(MariaDB 作为替代品使用相同的键。)
如果你想使用你的自定义键,你需要将它们映射到 docker-compose.yml 中:
db-data-jobs:
image: mariadb:10.6
container_name: db-data-jobs
restart: unless-stopped
tty: true
env_file:
- .db.env
volumes:
- db-data:/var/lib/mysql
- type: bind
source: /etc/localtime
target: /etc/localtime
ports:
- '3307:3306'
networks:
- app-net
environment:
- MYSQL_USER=${DB_USERNAME}
https://docs.docker.com/compose/environment-variables/
确保您没有扭曲文件的名称:.env
和 .db.env
。
关于laravel - 如何为我的数据库用户设置一次密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68634693/