MYSQL Docker 容器给出“未知数据库”错误

2024-03-13

我正在使用带有 docker-compose 的 MySQL docker 容器,效果很好。

唯一的问题是我收到错误unknown database "database_name"我每天第一次运行它(Windows启动后)

之后,如果我停止它并重新运行它,我不会收到任何错误,并且一切正常。

yaml配置:

version: "2.0"
services:
  mysql:
    container_name: mysql
    restart: always
    image: mysql:5.7
    command: --max_allowed_packet=32505856
    ports:
      - "3306:3306"
    volumes:
      - 'C:\data\mysql_db:/var/lib/mysql/'
    environment:
      MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
    networks:
      - shared
networks:
  shared: 
    external:
      name: shared

EDIT:这是一个启动日志的粘贴箱:https://pastebin.com/aJiKJ4aE https://pastebin.com/aJiKJ4aE


我相信你正在经历这个问题 https://github.com/docker/for-win/issues/584。有几个可能的解决方案,但我自己没有尝试过,因为我在 Windows 上没有 Docker:

  1. 解决方案 1(谢恩) https://github.com/docker/for-win/issues/584#issuecomment-394056400
    Remove restart:always从你的容器中。相反,运行此命令一次,它将创建一个容器,该容器将在安装准备就绪时启动容器:
docker run --name holdup
    --restart always
    -v 'C:\data\mysql_db:/var/lib/mysql/'
    -v //var/run/docker.sock:/var/run/docker.sock
    shaynesweeney/holdup

然而,这将产生启动的效果all重新启动时停止的容器。

  1. evolart 的解决方案 2 https://github.com/docker/for-win/issues/584#issuecomment-474144098
    创建以下 Powershell 脚本(将位置调整为 docker-compose.yml 所在的位置):
Do {
    $dockerps = (docker ps)
    Start-Sleep -S 5
} While (! $dockerps -contains "mysql")
Set-Location D:\Docker\MySQL
docker-compose restart

Then:

使用“启动程序”操作添加任务计划程序任务以运行脚本。
程序/脚本:powershell.exe
添加参数:-windowstyle hide -file D:\Docker\MySQL-Restart.ps1

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MYSQL Docker 容器给出“未知数据库”错误 的相关文章

随机推荐