gpt4 book ai didi

MYSQL Docker 容器给出 "unknown database"错误

转载 作者:可可西里 更新时间:2023-11-01 07:38:22 30 4
gpt4 key购买 nike

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

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

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

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

编辑:这是一个启动日志的 pastebin:https://pastebin.com/aJiKJ4aE

最佳答案

我相信您正在经历 this problem .那里有几个可能的解决方案,但我自己没有尝试过,因为我在 Windows 上没有 Docker:

  1. Solution 1 by shayne
    从容器中删除 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

然而,这会在重新启动时启动所有您已停止的容器。

  1. Solution 2 by evolart
    创建以下 Powershell 脚本(将您的位置调整为 docker-compose.yml 所在的位置):
Do {
$dockerps = (docker ps)
Start-Sleep -S 5
} While (! $dockerps -contains "mysql")
Set-Location D:\Docker\MySQL
docker-compose restart

然后:

Add a Task Scheduler Task with the action Start a program to run the script.
Program/script: powershell.exe
Add arguments: -windowstyle hidden -file D:\Docker\MySQL-Restart.ps1

关于MYSQL Docker 容器给出 "unknown database"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53426919/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com