mysql - docker容器中出现"Base table or view not found"错误

标签 mysql laravel docker docker-compose

我有带有 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/

相关文章:

php - 拉维 "Symfony\Component\HttpKernel\Exception\HttpException"错误

python - 在Docker容器上运行Tkinter

docker - 使用DOCKER设置Pebble SDK

mysql - #1044 - 拒绝用户 'chirops0' @'localhost' 访问数据库 'information_schema'

php - php中字符串到数组的转换

php - Socket.io私信通知

docker - 命名的 docker 卷未使用 docker-compose 更新

php - 尝试消除 MYSQL 临时表,并在可能的情况下将流程合并到一条语句中

mysql - 分类网站的数据库结构

sql - 合并两个具有不同列数的表