代码之家  ›  专栏  ›  技术社区  ›  D.R.

Docker。MySQL图像。无法更改我的。cnf文件

  •  8
  • D.R.  · 技术社区  · 8 年前

    我有这样一个 docker-compose.yml :

        database:
            container_name: test_db
            image: mysql:5.7
            volumes:
                - ./docker/my.cnf:/etc/my.cnf
            environment:
                - "MYSQL_ROOT_PASSWORD=root"
                - "MYSQL_DATABASE=test_db"
            ports:
                - "3306:3306"
            volumes:
              - test_db_data:/var/lib/mysql
    
    volumes:
        test_db_data:
    

    sql_mode .

    ./docker/my.cnf 包含:

    [mysqld]
    sql_mode=""
    

    但是当我从本地机器连接到db并运行 SELECT @@sql_mode; 我收到:

    ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
    

    我做错了什么?

    3 回复  |  直到 8 年前
        1
  •  23
  •   Brad    7 年前

    您可以将其添加到db服务中:

    command: --sql_mode=""
    

        database:
        container_name: test_db
        image: mysql:5.7
        volumes:
            - ./docker/my.cnf:/etc/my.cnf
        environment:
            - "MYSQL_ROOT_PASSWORD=root"
            - "MYSQL_DATABASE=test_db"
        ports:
            - "3306:3306"
        volumes:
          - test_db_data:/var/lib/mysql
        command: --sql_mode=""
    
        2
  •  6
  •   Fiber Optic    8 年前

    尽量只使用一个“volumes”指令。也许它只使用最后一个。

        3
  •  -1
  •   D.R.    3 年前

    我也变了

    - ./docker/my.cnf:/etc/my.cnf
    

    - ./docker/my.cnf:/etc/alternatives/my.cnf
    

    作为一种附加奖金,它看起来被认为是一种“更好的做法”。