使用 docker-compose 更改 Mariadb 映像上的 SQL 模式

Aur*_*ien 11 mariadb docker docker-compose

我对 Mariadb 的官方 dockerized 镜像有疑问。

当我的应用程序尝试进​​行一些查询时,我收到以下错误:

数据库错误:未知错误查询:插入

这个错误似乎来自 SQL_MODE,它在这张图片中设置如下:

STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,
NO_ENGINE_SUBSTITUTION
Run Code Online (Sandbox Code Playgroud)

我有一个普通的 Linux 服务器并安装了 mariadb,但我的 SQL_mode 中没有这个 STRICT_TRANS_TABLES 值。我的应用程序运行没有任何问题。

当我使用 docker-compose 文件运行 docker-compose 而不需要自定义 dockerfile 时,如何删除容器中的 STRICT_TRANS_TABLES 值?

Her*_*vic 35

在您docker-compose.yml设定的命令:--sql_mode=""
下面是一个例子:

db-service:
    build:
      context: .
      dockerfile: db.dockerfile
    image: example/repo:db
    ports:
      - "3306:3306"
    volumes:
      - ./data/db-data:/var/lib/mysql
      - ./data/db-init:/docker-entrypoint-initdb.d/
    ports:
      - "3306:3306"
    environment:
        MYSQL_USER: root
        MYSQL_ROOT_PASSWORD: root
        MYSQL_DATABASE: your_database
    command: mysqld --sql_mode="" --character-set-server=utf8 --collation-server=utf8_slovenian_ci --init-connect='SET NAMES UTF8;' --innodb-flush-log-at-trx-commit=0
    restart: on-failure
    networks:
      - yournet
Run Code Online (Sandbox Code Playgroud)

这对我来说可以。

  • 终于找到有人用 docker-compose 解决这个问题了。 (5认同)