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

How can I set my password for my database user once?

我已经使用 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 只使用一个配置键来防止我再次犯这个错误?

您的环境变量名称错误,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