【问题标题】:lower_case_table_names error for Docker + MySQL 8.0.26 based project on Ubuntu 20.04 Server(AWS EC2)Ubuntu 20.04 服务器(AWS EC2)上基于 Docker + MySQL 8.0.26 的项目的 lower_case_table_names 错误
【发布时间】:2021-10-21 15:22:12
【问题描述】:

我正在尝试使用 Docker Compose 在基于 Ubuntu 20.04 的 AWS EC2 服务器上配置我的 Django + MySQL(8.0.26) 项目。但是,由于lower_case_table_names,MySQL 数据库容器无法正常工作。这些是solution1solution2solution3 的一些解决方案,我已经尝试过但无法找到解决方案。

我已基于此 YouTube tutorial 创建了一个示例项目,该项目已在我的本地计算机(macOS 11.4)上成功运行。

docker-compose.yml

version: '3.8'

services: 
  db:
    image: mysql:8.0.26
    restart: always
    command: --lower_case_table_names=1
    environment:
      - MYSQL_DATABASE=tutorialdb
      - MYSQL_USER=chitrang
      - MYSQL_PASSWORD=test123
      - MYSQL_ROOT_PASSWORD=test123
    ports:
      - "3307:3306"
    volumes:
      - ./dbdata:/var/lib/mysql
  backend:
    build: .
    command: python manage.py runserver 0.0.0.0:8000  
    ports:
      - 8000:8000
    volumes:
      - .:/app
    depends_on:
      - db

错误日志:

db_1       | 2021-08-20 01:01:48+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.26-1debian10 started.
db_1       | 2021-08-20 01:01:50+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
db_1       | 2021-08-20 01:01:50+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.26-1debian10 started.
db_1       | 2021-08-20T01:01:51.247142Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.26) starting as process 1
db_1       | 2021-08-20T01:01:52.809303Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
db_1       | 2021-08-20T01:01:56.262851Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
db_1       | 2021-08-20T01:01:56.320513Z 1 [ERROR] [MY-011087] [Server] Different lower_case_table_names settings for server ('1') and data dictionary ('2').
db_1       | 2021-08-20T01:01:56.321126Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
db_1       | 2021-08-20T01:01:56.321630Z 0 [ERROR] [MY-010119] [Server] Aborting
db_1       | 2021-08-20T01:01:56.867684Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.26)  MySQL Community Server - GPL.

我尝试在 docker-compose.yml 文件中为 lower_case_table_names 设置所有三个可能的值 0|1|2,但每次的错误消息都相似。

我想解决方案可能很简单,但由于这是我的第一个后端 + DevOps 项目,我可能无法轻松解决。此外,这个问题似乎很常见,并且许多开发人员都面临过,所以我认为 MySQL 或 Ubuntu 团队应该解决它。

【问题讨论】:

    标签: mysql amazon-web-services docker ubuntu amazon-ec2


    【解决方案1】:

    试试这个,它对我有用:

    https://gist.github.com/feltnerm/bb6e23f531803896ca1e

    version: '3.8'
    
    services: 
      db:
        image: mysql:8.0.26
        restart: always
        command: --lower_case_table_names=0
        environment:
          - MYSQL_DATABASE=tutorialdb
          - MYSQL_USER=chitrang
          - MYSQL_PASSWORD=test123
          - MYSQL_ROOT_PASSWORD=test123
        ports:
          - "3307:3306"
        volumes:
          - ./data/initdb.d:/docker-entrypoint-initdb.d
          - ./data/mysql:/var/lib/mysql
      backend:
        build: .
        command: python manage.py runserver 0.0.0.0:8000  
        ports:
          - 8000:8000
        volumes:
          - .:/app
        depends_on:
          - db
    

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 1970-01-01
    • 2014-05-24
    • 2021-06-22
    • 1970-01-01
    • 2019-06-01
    • 2021-07-03
    • 1970-01-01
    • 2021-05-07
    • 2014-05-01
    相关资源
    最近更新 更多