【问题标题】:Why does my mysql docker container not creating all the tables?为什么我的 mysql docker 容器没有创建所有表?
【发布时间】:2018-11-21 13:28:06
【问题描述】:

我有这个 docker-compose.yml

version: '3'
services:
  wordpress_db:
    restart: unless-stopped
    build: 
      context: ./db
    environment:
      MYSQL_USER: ${WP_DB_USER}
      MYSQL_PASSWORD: ${WP_DB_USER_PASSWORD}
      MYSQL_ROOT_PASSWORD: ${WP_DB_USER_PASSWORD}
      MYSQL_DATABASE: ${WP_DB_NAME}
    ports:
      - 3306:3306

这是我的 dockerfile

FROM mysql:5.7
COPY ./smartcom_wp_db.sql /docker-entrypoint-initdb.d/smartcom_wp_db.sql

奇怪的是,我以前确实可以使用它。我所有的表都已创建,一切都很好。

但现在毕竟在嘲笑.. 并将其重生回上述配置。出于某种原因,现在只创建了几个表?我尝试删除所有图像、容器并重新创建图像和容器。

发生了什么事?我在 .sql 文件中有 33 个表,现在只创建了 11 个。我只是把头发拉出来。怎么会突然不能正常工作???

【问题讨论】:

  • 任何来自 mysql 容器的可疑日志?
  • @EmruzHossain 我确实看过日志,没有什么不寻常的。只是一堆初始化文本。不过,当我 ssh 到容器时,这似乎有点奇怪。 mysql 服务没有运行。所以我必须手动启动它。我不知道那是不是故意的..怎么工作然后突然不..让我发疯了..
  • 啊,我明白了!这是因为查询时间太长了,当我登录到容器时,它就停止了查询!当我显示所有表格时,它只显示已经创建的表格。
  • 另外,如果您的问题得到解决,请添加一个解释发生情况的答案。这可能对其他人有所帮助。
  • 我也会感谢 Emruz 的提示。

标签: docker docker-compose


【解决方案1】:

我想通了。

来自这篇文章: How do I know when my docker mysql container is up and mysql is ready for taking queries?

查询只是度过了一段美好的时光,因为真的无法知道它何时会完成。所以如果你 ssh 到 mysql 容器并且查询还没有完成。您只会看到已经创建的内容,而不是所有内容。

我实际上有一个想要 dockerize 的现有 wordpress 网站。因此,当我查看 wordpress 容器时,它会抛出一堆错误,因为它正在寻找一个尚不存在的表。

【讨论】:

    猜你喜欢
    • 2021-12-25
    • 2023-01-22
    • 2017-02-10
    • 2021-04-03
    • 1970-01-01
    • 2014-08-08
    • 2021-11-23
    • 2021-10-22
    • 2023-03-21
    相关资源
    最近更新 更多