Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL Docker容器中止-[错误][MY-011087]_Mysql_Docker - Fatal编程技术网

MySQL Docker容器中止-[错误][MY-011087]

MySQL Docker容器中止-[错误][MY-011087],mysql,docker,Mysql,Docker,该容器由apachephp、MySQL、Nodejs和phpmyadmin DBMS组成。在我的docker-compose.yml文件中,我设置了一个用于为MySQL数据库服务器保存数据的卷。如果你建立你的应用程序,创建一个数据库,添加数据,等等,一切都很好。旋转起来,停下来。再次旋转,一切都很好 问题是: 我在我的Mac电脑上构建了一个应用程序,该应用程序为CRUD创建了一个附带的数据库/数据。我在用GitHub遥控器。当我在工作时在我的(Windows)机器上拉下遥控器时,MySQL数据库

该容器由apachephp、MySQL、Nodejs和phpmyadmin DBMS组成。在我的docker-compose.yml文件中,我设置了一个用于为MySQL数据库服务器保存数据的卷。如果你建立你的应用程序,创建一个数据库,添加数据,等等,一切都很好。旋转起来,停下来。再次旋转,一切都很好

问题是:

我在我的Mac电脑上构建了一个应用程序,该应用程序为CRUD创建了一个附带的数据库/数据。我在用GitHub遥控器。当我在工作时在我的(Windows)机器上拉下遥控器时,MySQL数据库服务器无法启动

dbServer      | 2021-04-22T14:07:58.964842Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.23) starting as process 1
dbServer      | 2021-04-22T14:07:58.985910Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
dbServer      | 2021-04-22T14:07:59.793149Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
dbServer      | 2021-04-22T14:07:59.810522Z 1 [ERROR] [MY-011087] [Server] Different lower_case_table_names settings for server ('0') and data dictionary ('2').
dbServer      | 2021-04-22T14:07:59.810867Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
dbServer      | 2021-04-22T14:07:59.811096Z 0 [ERROR] [MY-010119] [Server] Aborting
其他Mac用户可以毫无问题地启动。我在Windows机器上实现此功能的唯一方法是:推送时忽略数据量,但在拉入和旋转容器时,必须使用SQL脚本构建数据库结构

以下是MySQL容器的docker-compose.yml文件中的代码:

version: "3"

database:
    build:
      context: "./bin/${DATABASE}"
    container_name: '${DATABASE_HOST_NAME}'
    networks:
      - backend
    ports:
      - "127.0.0.1:${HOST_MACHINE_MYSQL_PORT}:3306"
    volumes: 
      - ${MYSQL_DATA_DIR}:/var/lib/mysql
      - ${MYSQL_LOG_DIR}:/var/log/mysql
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_DATABASE: ${MYSQL_DATABASE}
      MYSQL_USER: ${MYSQL_USER}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}
我已经尝试为
lower\u case\u table\u names='2'
设置服务器值,以匹配在Mac主机上创建的数据字典,但我假设由于容器是基于Linux的,它只是立即将服务器设置重置为'0'并失败

是否有一种快速简便的方法可以解决此问题,而无需备份/擦除所有内容并从头开始

谢谢你的帮助