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配置文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python编辑器_资深程序员:学Pyt
- 下一篇: origin tangent插件_如何用