【问题标题】:Docker - mysql user is not createdDocker - 未创建 mysql 用户
【发布时间】:2019-06-29 16:24:47
【问题描述】:

我是 Docker 的初学者,正在观看 Paul Redmond 为 PHP 开发人员编写的 Docker 教程。但是当他创建 MySQL 数据库时,一切正常,但我有问题,无法找出在哪里。

我正在使用 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

docker-compose.yml:

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

.env 在 Laravel 中:

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

登录到 mysql 容器并进入 mysql 后,我尝试显示所有用户,但在容器初始化时没有应该创建的“宅基地”用户。

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          |
+---------------+

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

【问题讨论】:

  • DB_PASSWORD=secretMYSQL_ROOT_PASSWORD: root

标签: php mysql laravel docker


【解决方案1】:

问题出在 MySQL 容器的环境变量上。 您应该使用 MYSQL_PASSWORD 而不是 MYSQL_SECRET

Reference

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-15
    • 2021-11-09
    • 1970-01-01
    • 2019-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多