日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

發布時間:2025/3/15 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pod中mysql配置文件修改_通过configmap更新k8s里的mysql配置文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景:

環境注意:在用rancher搭建的k8s里,mysql是起了一個pod,鏡像是網上的mysql:5.7

開發人員提出了一個報錯“查詢時的ONLY_FULL_GROUP_BY錯誤”,讓我改sql_mode,當時我覺得這很好改,將數據庫的配置文件添加一條sql_mode,重啟數據庫就行了。

但是,我起初通過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

總結

以上是生活随笔為你收集整理的pod中mysql配置文件修改_通过configmap更新k8s里的mysql配置文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。