laravel - 如何为我的数据库用户设置一次密码?

标签 laravel docker docker-compose mariadb

我已经使用 docker-compose 开始了一个新项目,但是我的迁移和数据库查询出现错误 Access denied for user 'data-jobs'@'172.18.0.3' (using password: YES)

我有 2 个配置文件。 .env 用于我的 laravel 配置,.db.env 用于我的数据库环境变量。我收到此错误是因为我更改了 .env 文件中的值,但没有更改 .db.env 文件中的值。

我的问题是:

我怎样才能只使用一个配置键将 MYSQL_PASSWORDDB_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/

相关文章:

mongodb - Spring Boot连接到Mongo容器运行的MongoDB副本集

docker - 文件从哪里/如何填充到/var/www/html?

php - 不允许序列化 'Closure' - laravel

docker - 如何在 Tensorflow 服务器上使用自定义操作

javascript - 如何在 laravel javascript 中设置默认事件选项卡?

docker - System.Net.Http.HttpRequestException : Connection refused

java - Docker-compose - 为运行 spring boot 独立应用程序的 docker 容器提供基于 XML 的配置

java - Spring Boot无法连接MySQL并在Docker/Docker compose中退出

javascript - 如何在 JavaScript 中获取 Laravel 的语言环境?

php - Laravel 的递归 ->toArray()