【问题标题】:Docker. MySQL image. Can't change my.cnf file码头工人。 MySQL 映像。无法更改 my.cnf 文件
【发布时间】:2018-05-02 15:31:32
【问题描述】:

我有这样一个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

我做错了什么?

【问题讨论】:

  • sudo 进入 my.cnf
  • @AlirezaAmrollahi 我不明白你。什么意思?
  • 当您在其上安装卷时覆盖默认的 my.cnf 文件 github.com/docker-library/mysql/blob/… 。尝试添加到默认文件。
  • @yamenk 这不是问题,因为在这种情况下 sql_mode 会如我所愿。我检查了挂载的文件,发现它没有挂载。致力于解决方案。很高兴听到您的建议)

标签: mysql macos docker docker-compose


【解决方案1】:

我也变了

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

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

这与问题无关,但看起来被认为是一种“更好的做法”。

【讨论】:

  • 我建议编辑/更新您的问题,而不是回答您自己的问题并提出新问题。
  • 谢谢你的建议,但我不这么认为。最初的问题是无法更改 my.cnf 文件。我已经解决了它并发布了一个答案。我不明白错误的根源,但我已经解决了。如果某人可以解释它-好的。不——我可以接受,不需要为此提出新的 SO 问题。
  • 请展示完成的 docker-compose 文件是什么样的?您是否删除了第二个卷命令?
  • @slashdottir 对不起,我没有了 :(
【解决方案2】:

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

【讨论】:

  • 天啊。我没有注意到。我已经解决了这个问题,但第二次是在一个volume“命令”中(不知道如何命名)。
【解决方案3】:

您可以将其添加到您的数据库服务中:

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=""

【讨论】:

  • 有趣的想法。谢谢。
  • @D.R.它适用于我的情况,不确定它是否适用于你的情况。
  • 对我来说,这是唯一有效的方法。非常感谢布拉德。
  • 这是一个很好的解决方案,干净
  • 这对我有用,我同意命令:--sql_mode="" 并且有效。
猜你喜欢
  • 2021-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多