mysql实验环境搭建

背景

mysql 是一个非常非常通用的关系型数据库,在后端开发中非常经常被用到。这里做一下 mysql 实验环境的搭建记录。

调研

通过在 dockerhub 上搜索 mysql,发现有大量的镜像提供者。之前已经用过 bitnami 的 pg 了,考虑到 bitnami 生态更加完善,因此选择 bitnami/mysql 作为镜像。

搭建过程

搭建过程比较简单,直接参考 bitnami/mysql 的文档即可。

docker

拉镜像

1
docker pull bitnami/mysql:5.7.40

直接通过 docker 运行

1
2
3
4
5
6
7
8
9
10
11
12
13
docker run \
-e MYSQL_USER=root \
-e MYSQL_PASSWORD=password123 \
-e MYSQL_DATABASE=testmysql \
-e ALLOW_EMPTY_PASSWORD=yes \
-e MYSQL_ROOT_PASSWORD=password123 \
-e MYSQL_REPLICATION_MODE=master \
-e MYSQL_REPLICATION_USER=user_repl \
-e MYSQL_REPLICATION_PASSWORD=password123 \
-v /data/mysqltest:/bitnami/mysql \
--name mysqlmyster \
-p 3306:3306 \
bitnami/mysql:5.7.40

配置 docker-compose.yaml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
version: '3.3'

networks:
mysqlnet:
driver: bridge

services:
mysql:
image: docker.io/bitnami/mysql:5.7.40
ports:
- '3306:3306'
volumes:
- '/data/mysqltest:/bitnami/mysql'
- '/data/mysqltest/init:/docker-entrypoint-initdb.d'
environment:
- 'MYSQL_USER=root'
- 'MYSQL_PASSWORD=password123'
- 'MYSQL_DATABASE=testmysql'
- 'ALLOW_EMPTY_PASSWORD=yes'
- 'MYSQL_ROOT_PASSWORD=password123'
- 'MYSQL_REPLICATION_MODE=master'
- 'MYSQL_REPLICATION_USER=user_repl'
- 'MYSQL_REPLICATION_PASSWORD=password123'
networks:
- mysqlnet

k8s

charts 同样选择 bitnami 的库
如何添加 helm 库,可以参考 postgresql实验环境搭建

查看 charts
1
2
helm fetch bitnami/mysql --untar
# 看情况修改需要的参数
修改 values.yaml 中的 auth
1
2
3
4
5
6
7
8
auth:
rootPassword: "password123"
createDatabase: true
database: "testmysql"
username: "root"
password: "123456"
replicationUser: "repl_user"
replicationPassword: "123456"
部署
1
helm install mysql ./mysql

修改 service

1
2
3
kubectl edit svc xxxx

# 修改 Cluster 为 LoadBalancer/NodePort
测试
1
k exec -it mysql-0 -- mysql -uroot -p123456
  • 继续完成 k8s 的部署 ✅ 2022-10-26
  • 完成 mysql 的复制集搭建
  • 完成 mysql 的备份恢复等维护工作

Do not overrate what you have received, nor envy others. He who envies others does not obtain peace of mind.
Buddha


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!