写点什么

拥抱 K8S 系列 -03- 服务器部署应用和 docker 部署应用区别 (MySQL 篇)

用户头像
张无忌
关注
发布于: 2020 年 09 月 03 日
拥抱K8S系列-03-服务器部署应用和docker部署应用区别(MySQL篇)

在阅读本文前,建议先阅读nginx篇--https://xie.infoq.cn/article/ddb11baa1f5c749b3df7bb7c0



看完nginx篇,如果上述问题都算是可以解决的话,那么接下来这个场景就很难在一台服务器实现--同时运行一款应用的多个版本。比如一台服务器上同时运行MySQL5.6, MySQL5.7, MySQL8.0,因为不同版本的MySQL依赖的系统环境有差异。但这个问题在docker上就可以完美解决,因为每个MySQL都有独立运行环境。本文仅做简单演示如何基于docker部署出多个版本MySQL。



# 启动MySQL5.6
docker run -d \
--name mysql5.6 \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=mysqlpassword \
mysql:5.6
# 启动MySQL5.7
docker run -d \
--name mysql5.7 \
-p 3307:3306 \
-e MYSQL_ROOT_PASSWORD=mysqlpassword \
mysql:5.7
# 启动MySQL8
docker run -d \
--name mysql8 \
-p 3308:3306 \
-e MYSQL_ROOT_PASSWORD=mysqlpassword \
mysql:8
# 确认3306,3307,3308三个端口是否都在监听
ss -tanlp | grep :330
LISTEN 0 128 [::]:3306 [::]:* users:(("docker-proxy",pid=7820,fd=4))
LISTEN 0 128 [::]:3307 [::]:* users:(("docker-proxy",pid=8279,fd=4))
LISTEN 0 128 [::]:3308 [::]:* users:(("docker-proxy",pid=8492,fd=4))
# 安装MySQL客户端
yum -y install mysql
# 查看MySQL版本
mysql -uroot -pmysqlpassword -h127.0.0.1 -P3306 -e 'select version();'
+-----------+
| version() |
+-----------+
| 5.6.49 |
+-----------+
mysql -uroot -pmysqlpassword -h127.0.0.1 -P3307 -e 'select version();'
+-----------+
| version() |
+-----------+
| 5.7.31 |
+-----------+
docker exec mysql8 bash -c "mysql -uroot -pmysqlpassword -e 'select version()'"
version()
8.0.21
# 说明:
# 由于MySQL8的用户密码加密方式使用caching_sha2_password,旧版本的mysql客户端并不支持
# 也就是mysql客户端也要使用8.0,于是我们在容器内部查看MySQL版本



官方参考文档:https://hub.docker.com/_/mysql



发布于: 2020 年 09 月 03 日阅读数: 66
用户头像

张无忌

关注

运维老司机带你精通各种删库删服操作 2020.08.27 加入

最近在写K8S系列文章

评论

发布
暂无评论
拥抱K8S系列-03-服务器部署应用和docker部署应用区别(MySQL篇)