我是 Docker 的初学者,我正在观看 Paul Redmond 的教程 Docker for PHP Developers。但是当他创建 MySQL 数据库时,一切正常,但我遇到了问题,无法找出问题所在。
我正在使用 Laravel,我需要连接到数据库。但似乎 MySQL 容器没有创建新用户,我不知道为什么。
docker 文件:
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 后,我试图显示所有用户,但没有“homestead”用户应该在容器初始化时创建。
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 |
+---------------+
我已经尝试删除所有容器并重新构建它。我没有做任何花哨的事情,所以我做错了什么?
最佳答案
问题出在MySQL容器的环境变量上。
您应该使用 MYSQL_PASSWORD
而不是 。MYSQL_SECRET
关于php - Docker - 未创建mysql用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54541388/