【问题标题】:How to disable mysql strict mode in kubernetes?如何在 kubernetes 中禁用 mysql 严格模式?
【发布时间】:2021-12-14 08:13:30
【问题描述】:

我想在 Kubernetes 中创建一个默认禁用严格模式的 MySQL 容器。我知道如何在 docker 中禁用严格模式。我尝试在 Kubernetes 中使用相同的方式,但它显示错误日志。

码头工人

docker container run -t -d --name hello-wordl mysql --sql-mode=""

kubernetes

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-db
  labels:
    app: db
spec:
  selector:
    matchLabels:
      app: db
  template:
    metadata:
      name: my-db
      labels:
        app: db
    spec:
      containers:
      - name: my-db
        image: mariadb
        imagePullPolicy: Always
        args: ["--sql-mode=\"\""]

错误:

2021-10-29 08:20:57+00:00 [Note] [Entrypoint]:MariaDB Server 1:10.2.40+maria~bionic 的入口点脚本已启动。 2021-10-29 08:20:57+00:00 [错误] [入口点]:mysqld 在尝试检查配置时失败 命令是:mysqld --sql-mode="" --verbose --help --log-bin-index=/tmp/tmp.i8yL5kgKoq 2021-10-29 8:20:57 140254859638464 [错误] mysqld:将值 '""' 设置为 'sql_mode' 时出错

【问题讨论】:

    标签: mysql docker kubernetes containers


    【解决方案1】:

    看来您必须为此使用configmap
    Configmap 清单:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: mysql-config
      labels:
        app: mysql
    data:
      my.cnf: |-
        [client]
        default-character-set=utf8mb4
        [mysql]
        default-character-set=utf8mb4
        [mysqld] 
        max_connections = 2000
        secure_file_priv=/var/lib/mysql
        sql_mode=STRICT_TRANS_TABLES
    

    部署清单:在卷部分

        volumeMounts:
        - name: data
          mountPath: /var/lib/mysql
        - name: config
          mountPath: /etc/mysql/conf.d/my.cnf
          subPath: my.cnf
    
      volumes:
      - name: config      
        configMap:
        name: mysql-config
    

    这将替换您在 MySQL 容器中的默认 my.conf,如果您需要设置更多变量,最好将它们包含在 configmap
    For more detailed answer

    【讨论】:

    • 感谢您的回复。我喜欢你如何添加配置的想法,它看起来很干净。但是我的容器需要在入口点运行查询,所以这种方式可能不适用于我的情况。
    【解决方案2】:

    根据您收到的错误,它正在读取双引号作为 sql_mode 的值。您应该省略转义的双引号。

    args: ["--sql-mode="]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-24
      • 2019-01-29
      • 1970-01-01
      • 2017-07-28
      • 2019-12-14
      • 1970-01-01
      • 1970-01-01
      • 2021-03-09
      相关资源
      最近更新 更多