背景
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
| k exec -it mysql-0 -- mysql -uroot -p123456
|
Do not overrate what you have received, nor envy others. He who envies others does not obtain peace of mind.
— Buddha