pod中mysql配置文件修改_通过configmap更新k8s里的mysql配置文件

背景:

环境注意:在用rancher搭建的k8s里,mysql是起了一个pod,镜像是网上的mysql:5.7

开发人员提出了一个报错“查询时的ONLY_FULL_GROUP_BY错误”,让我改sql_mode,当时我觉得这很好改,将数据库的配置文件添加一条sql_mode,重启数据库就行了。

c091b9fbb2a216d2fb01a8329cff058e.png

但是,我起初通过rancher进入到mysql容器里面,执行命令 mysql -uroot -p密码 -e "set @@sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';" 或者是进到mysql里面执行命令或者写到配置文件里重启mysql,会出现一些问题:设置只针对新建的数据,旧的数据还是不起作用;设置只针对这次运行中的容器,下次重启更新pod,配置都会失效;写入配置文件再重启或重载mysql会出现整个pod都会更新,导致配置文件恢复到初始。

既然不能在容器里面改,也不能修改镜像,所以就从mysql的yaml文件下手。

思路:

1.创建configmap,设置配置映射

2.mysql里使用configmap挂载数据配置

mysql配置文件---configmap

apiVersion: v1

data:

mysqld.cnf:|-[mysqld]

pid-file = /var/run/mysqld/mysqld.pid

socket= /var/run/mysqld/mysqld.sock

datadir= /var/lib/mysql

#log-error = /var/log/mysql/error.log

# Bydefault we only accept connections fromlocalhost

#bind-address = 127.0.0.1# Disabling symbolic-links isrecommended to prevent assorted security risks

symbolic-links=0sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'kind: ConfigMap

metadata:

name: mysql-confignamespace: gymdev

其中,mysqld.cnf是数据库配置文件的名称,后面跟的是配置文件的内容,最后一排就是更改报错的配置;metadata--name是这个configmap的名称,后面mysql的yaml里面会调用。

mysql

apiVersion: apps/v1

kind: Deployment

metadata:

name: mysql-devnamespace: icourt-dev

labels:

app: mysql-dev

spec:

replicas:1selector:

matchLabels:

app: mysql-dev

template:

metadata:

labels:

app: mysql-dev

spec:

containers:-name: mysql

image: mysql:5.7env:-name: MYSQL_ROOT_PASSWORD

value:"密码"ports:- containerPort: 3306protocol: TCP

name: 3306tcp01

volumeMounts:- mountPath: "/var/lib/mysql"name: mysqlpv-icourt-dev

subPath: mysqldev-icourt-dev - name: config-volume

mountPath: "/etc/mysql/mysql.conf.d/"

volumes:- name: mysqlpv-icourt-dev

persistentVolumeClaim:

claimName: mysqlpvc-icourt-dev- name: config-volume

configMap:

name: mysql-config

其中,(1)表示一个挂载点的名称

(2)表示新挂载点的路径,这里就是mysql配置文件的路径

(3)表示挂载点的名称

(4)使用configmap

(5)使用名为mysql-config,configmap的name

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值