mysql - Docker mysql 8 - 无法将 mysql 文件夹绑定(bind)到 Windows 10 文件夹。出现 mbind 错误

标签 mysql docker

大约一年前,我可以将 Windows 文件夹绑定(bind)到 Docker MySql 文件夹。

当尝试对 Docker MySql 8.0.12 执行相同操作时,我无法将 Windows 文件夹绑定(bind)到 MySql。我在mysql的日志中看到mbind:不允许操作。

services:
  mysql-docker-container:
    image: mysql:8.0.12
    environment:
      - MYSQL_ROOT_PASSWORD=***
      - MYSQL_DATABASE=spring_app_db
      - MYSQL_USER=app_user
      - MYSQL_PASSWORD=***
    volumes:
      - k:/zut/docker/storage:/var/lib/mysql
    ports: 
      - "3306:3306"

该文件夹是一个现有的空文件夹。我看到各种各样的帖子,但没有简单的解决方案。你能帮我找到好的解决方案吗?我删除了所有以前的容器和图像。

当尝试重新安装 MySql 5.7.* 或 5.6 时,我遇到了各种错误。

我可以看到 Windows 文件夹仍为空。

我应该在 Virtualbox 中配置一些东西吗?共享文件夹之类的?一年前我确实必须这样做。

日志信息(根据要求)是:

$ docker-compose -f docker-compose2.yml up
WARNING: The Docker Engine you're using is running in swarm mode.

Compose does not use swarm mode to deploy services to multiple nodes in a swarm. All containers will be scheduled on the current node.

To deploy your application across the swarm, use `docker stack deploy`.

Starting dockercomposespringbootmysql_mysql-docker-container_1 ... done
Attaching to dockercomposespringbootmysql_mysql-docker-container_1
mysql-docker-container_1  | 2018-09-02T13:53:15.776081Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
mysql-docker-container_1  | 2018-09-02T13:53:15.776168Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.12) starting as process 1
mysql-docker-container_1  | mbind: Operation not permitted
mysql-docker-container_1  | 2018-09-02T13:53:15.986113Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
mysql-docker-container_1  | 2018-09-02T13:53:16.053452Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.
mysql-docker-container_1  | 2018-09-02T13:53:16.060630Z 0 [Warning] [MY-010315] [Server] 'user' entry 'mysql.infoschema@localhost' ignored in --skip-name-resolve mode.
mysql-docker-container_1  | 2018-09-02T13:53:16.060890Z 0 [Warning] [MY-010315] [Server] 'user' entry 'mysql.session@localhost' ignored in --skip-name-resolve mode.
mysql-docker-container_1  | 2018-09-02T13:53:16.061308Z 0 [Warning] [MY-010315] [Server] 'user' entry 'mysql.sys@localhost' ignored in --skip-name-resolve mode.
mysql-docker-container_1  | 2018-09-02T13:53:16.061722Z 0 [Warning] [MY-010315] [Server] 'user' entry 'root@localhost' ignored in --skip-name-resolve mode.
mysql-docker-container_1  | 2018-09-02T13:53:16.062252Z 0 [Warning] [MY-010323] [Server] 'db' entry 'performance_schema mysql.session@localhost' ignored in --skip-name-resolve mode.
mysql-docker-container_1  | 2018-09-02T13:53:16.062621Z 0 [Warning] [MY-010323] [Server] 'db' entry 'sys mysql.sys@localhost' ignored in --skip-name-resolve mode.
mysql-docker-container_1  | 2018-09-02T13:53:16.063088Z 0 [Warning] [MY-010311] [Server] 'proxies_priv' entry '@ root@localhost' ignored in --skip-name-resolve mode.
mysql-docker-container_1  | 2018-09-02T13:53:16.068879Z 0 [Warning] [MY-010330] [Server] 'tables_priv' entry 'user mysql.session@localhost' ignored in --skip-name-resolve mode.
mysql-docker-container_1  | 2018-09-02T13:53:16.069353Z 0 [Warning] [MY-010330] [Server] 'tables_priv' entry 'sys_config mysql.sys@localhost' ignored in --skip-name-resolve mode.

最佳答案

答案 1:通过 Oracle VM Virtualbox 共享文件夹

启动 Oracle VM Virtualbox 并运行“默认”虚拟机。选择“默认”> 设置 > 共享文件夹。添加共享文件夹名称 = 'd/zut',Windows 上的文件夹 = 'd:\zut' 并授予其所有权限并保持其持久性。

在 docker-compose 文件中,您可以使用该映射:

volumes:
  - //d/zut:/var/lib/mysql

答案 2:命名卷

如果您在第一个解决方案中遇到问题,可以使用 docker“命名卷”。 Docker 管理持久卷。访问数据有点棘手;-)

在 docker-compose.yml 文件中添加(第一个“zut”之前没有“/”)

services:
  mysql-docker-container:
    image: mysql:8.0.12
      environment:
        - MYSQL_PASSWORD=*** etc etc
    volumes:
      - zut:/var/lib/mysql
    ports: 
      - "3306:3306"

  volumes:
    zut:

关于mysql - Docker mysql 8 - 无法将 mysql 文件夹绑定(bind)到 Windows 10 文件夹。出现 mbind 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52131478/

相关文章:

php - 从另一个表创建下拉列表到我的更新/删除/添加表中

docker - 构建docker镜像时使用FROM时基本镜像中包含的内容

node.js - Npm 安装失败,docker buildx linux/arm64

mysql - 主键会加速索引吗?

algorithm - Mysql 确定最接近颜色匹配的算法

mysql - 'connect by' 或 'WITH RECURSIVE' 是否可以在高度连接的大数据场景中使用?

docker - 限制容器的内存使用与限制容器内 JVM 进程的内存使用?哪个更好?

linux - Ubuntu docker 镜像不包含任何/dev/sdX block 设备?

postgresql - Docker化PostgreSQL

PHP MySQL 从数据库列中选择数据