代码之家  ›  专栏  ›  技术社区  ›  Jaroslav Klimčík

Docker-未创建mysql用户

  •  0
  • Jaroslav Klimčík  · 技术社区  · 6 年前

    我正在使用Laravel,我需要连接到数据库。但MySQL容器似乎没有创建新用户,我也不知道为什么。

    Dockerfile:

    FROM php:7.3.1-apache-stretch
    
    COPY . /var/www/html
    COPY docker/vhost.conf /etc/apache2/sites-available/000-default.conf
    
    RUN chown -R www-data:www-data /var/www/html \
        && docker-php-ext-install pdo_mysql \
        && a2enmod rewrite
    

    version: "3"
    services:
      app:
        image: laravel-www
        container_name: laravel-www
        build:
          context: .
          dockerfile: docker/Dockerfile
        ports:
          - 8080:80
      mysql:
        container_name: laravel-mysql
        image: mysql:5.7
        environment:
          MYSQL_DATABASE: homestead
          MYSQL_ROOT_PASSWORD: root
          MYSQL_USER: homestead
          MYSQL_SECRET: secret
        ports:
          - 3306:3306
    

    位于拉雷维尔的环境:

    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=homestead
    DB_USERNAME=homestead
    DB_PASSWORD=secret
    

    docker-compose exec mysql bash
    root@8ad8531fb0e0:/# mysql -u root --host=127.0.0.1 -proot
    mysql> select User from mysql.user;
    +---------------+
    | User          |
    +---------------+
    | root          |
    | mysql.session |
    | mysql.sys     |
    | root          |
    +---------------+
    

    我已经尝试移除所有容器并重新构建它。我没有做任何花哨的事,那我做错了什么?

    1 回复  |  直到 6 年前
        1
  •  4
  •   Duy Phan Dan Prince    5 年前

    问题在于MySQL容器的环境变量。 MYSQL_PASSWORD 而不是 MYSQL_SECRET .

    Reference