首页 > 解决方案 > 启用“使用 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”数据库中找不到任何数据或表/列。


标签: mysqlmacosdockerdocker-composemysql-8.0

解决方案


这是一个需要 Docker 解决的应用程序错误。请使用github 问题解决这些问题。已经为此打开了两个问题,因此最好遵循它们和/或提供其他步骤以在您的场景中重现该问题:


推荐阅读