mysql - 启用“使用 gRPC 进行文件共享”时,macOS 上的 Docker 2.4 无法正确挂载卷
问题描述
在我将 macos docker 应用程序更新到最新 (2.4.0.0) 版本后,当启用“使用 gRPC 进行文件共享”并且 /var/lib/mysql/ 目录为时,我无法在容器中启动 mysql 服务作为卷安装在我的本地计算机上。我比在 mysql error.log 中得到这个错误:
Different lower_case_table_names settings for server ('2') and data dictionary ('0').
幸运的是,当在 docker 应用程序设置/首选项中未选中“使用 gRPC 进行文件共享”选项时,我的持久化 /var/lib/mysql/ 卷在容器启动/构建时不会导致任何问题,并且容器工作正常。
但是如何在启用这个新功能的情况下正确地保存我的 mysql 数据呢?我认为它带来了一些性能优势(?)
此处描述的步骤不起作用。当我启动容器时启用了 gRPC 选项和一个空的 mysql 数据库,然后导入一个 sql 转储,然后一切正常,但是一旦我将 /var/lib/mysql/ 作为一个卷,我就会再次收到此错误。
我尝试仅隔离特定数据库(/var/lib/mysql/mydb)并将其作为卷而不是整个 mysql 目录挂载。事实上,mysql 服务器正常启动,但现在我的数据库无法正常工作 - 查询不输出任何内容/在“mydb”数据库中找不到任何数据或表/列。
解决方案
这是一个需要 Docker 解决的应用程序错误。请使用github 问题解决这些问题。已经为此打开了两个问题,因此最好遵循它们和/或提供其他步骤以在您的场景中重现该问题:
推荐阅读
- python - 迭代列值并检查内部值
- c# - AWS.Logger.AspNetCore 与 .NET Core 3.1 Web API 项目 - 记录消息格式和传递问题
- excel - 获取“今天”和“12 个月前”之间的持续时间
- datetime - Blazor 在一个字段中设置 DateTime 值会更新另一个字段中的 DateTime 值
- c# - 将 VST.NET 连接到 NAudio
- mysql - mysql sum() 和双重结果使用多个连接
- html - 最多 5 位小数的正则表达式,由 + 分隔
- javascript - 如何在 React 中使用 JS 中的 CSS 更改悬停按钮中的文本
- javascript - 根据屏幕宽度不同的视频来源
- sql - SQL - 一个表中有两个 CHECK 条件