我有带有 mysql 数据库的 Laravel 应用程序。我正在尝试使用此 docker-compose.yml 在 docker 中运行它:
load_balancer:
image: tutum/haproxy
links:
- web
ports:
- "80:80"
cache:
image: redis
web:
image: andrewmclagan/nginx-hhvm
links:
- db
- cache
volumes:
- ./:/var/www
environment:
- APP_ENV=local
- DB_DATABASE=regappbase
- DB_PASSWORD=Q1w2e3r4t5
- DB_HOST=db
- VIRTUAL_HOST=laravel.local
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: Q1w2e3r4t5
MYSQL_DATABASE: regappbase
在我的主机数据库上有三个表:
- 迁移
- 密码重置
- 用户
当我运行应用程序并尝试引用数据库时,出现如下错误:
QueryException in Connection.php line 715: SQLSTATE[42S02]: Base table or view not found: Table 'regappbase.users' doesn't exist (SQL: select * from users where email=(e-mail@ghhjghj77))
如何创建数据库 regappbase?我不需要存储数据,只需要存储架构
最佳答案
检查 mysql 镜像的文档 (hub.docker.com)。有一个目录,您可以将 .SQL 脚本挂载到其中,在容器启动时,mysql 将循环并执行该目录中的每个文件。用它来构建您的数据库架构
“初始化一个新实例 当容器第一次启动时,将使用提供的配置变量初始化一个新的数据库 mysql。此外,它将执行在/docker-entrypoint-initdb.d 中找到的扩展名为 .sh 和 .sql 的文件。您可以通过将 SQL 转储安装到该目录中来轻松填充您的 mysql 服务,并提供带有贡献数据的自定义镜像”
关于mysql - docker容器中出现"Base table or view not found"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38295091/