我将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
编辑:以下是启动日志的粘贴框:https://pastebin.com/aJiKJ4aE
答案 0 :(得分:1)
我相信您遇到了this problem。那里有两种可能的解决方案,但是我自己没有尝试过,因为我在Windows上没有Docker:
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 个已停止的容器。
Do {
$dockerps = (docker ps)
Start-Sleep -S 5
} While (! $dockerps -contains "mysql")
Set-Location D:\Docker\MySQL
docker-compose restart
然后:
通过操作添加任务计划程序任务启动程序以运行脚本。
程序/脚本:powershell.exe
添加参数:-windowstyle隐藏-文件D:\ Docker \ MySQL-Restart.ps1
答案 1 :(得分:0)
问题在于您的数据库容器实例中没有这样的架构。你可以做的是:
您现在应该可以访问容器数据库了。
如果您不知道如何使用工作台连接到数据库容器,请检查此 video