docker 安装部署多个MySQL的实现步骤

 更新时间:2022年01月27日 10:06:21   作者:Xy-Huang  
本文主要介绍了docker 安装部署多个MySQL的实现步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

环境配置

本地操作系统:Win10
虚拟机的操作系统:CentOS Stream 8
已安装docker,可以参考详细安装教程

安装MySQL

如果docker安装成功,我们可以直接使用指令启动一个docker运行MySQL服务,指令如下:

docker run -p 3306:3306 --name mysql8.0 -e MYSQL_ROOT_PASSWORD=1234 -d mysql

指令参数说明:

  • run:启动docker。
  • -p 3306:3306:设置操作系统与docker的端口对接,第一个3306是操作系统的端口,用于对完使用;第二个是docker运行MySQL的服务端口3306。
  • –name mysql8.0:是启动这个docker的容器名字,可以自行命名。
  • -e MYSQL_ROOT_PASSWORD=1234是设置docker的MySQL的root用户密码。
  • -d mysql:是镜像名称,如果没有规定MySQL版本,使用mysql默认安装最新版本,如果规定mysql版本,可以加上版本信息,如-d mysql5.7。

如果直接启动docker,而本地还没下载MySQL镜像,docker会默认自动下载MySQL镜像。指令执行完成后,分别输入指令查看当前docker和镜像信息:

docker ps -a
docker images

在这里插入图片描述

修改MySQL加密方式

由于最新版MySQL的加密方式改变了,如果使用Navicat Premium 15等工具连接可能无法连接成功,我们需要对docker里面的MySQL进行修改。
输入docker exec -it mysql8.0 bash进入当前docker,其中mysql8.0是这个docker的容器名字,如图所示:

在这里插入图片描述

此时,我们已经进入docker内部,然后分别输入MySQL指令修改用户密码的加密方式,指令如下:

mysql -uroot -p1234
use mysql;
alter user 'root'@'%' identified with mysql_native_password by '1234';
select host,user,plugin,authentication_string from mysql.user;

指令执行结果如图所示:

在这里插入图片描述

最后分别输入两次exit退出MySQL和docker。

在Win10的Navicat Premium 15连接虚拟机的CentOS的docker的MySQL,连接端口3306是启动run指令的参数 - -p 3306:3306的第一个端口,如图所示。

在这里插入图片描述

安装第二个MySQL

如果要在同一个操作系统运行多个docker的MySQL,只需在run指令设置参数 - -p 的对完端口即可,比如启动第二个MySQL服务,可执行下面指令:

docker run -p 3307:3306 --name mysql8.1 -e MYSQL_ROOT_PASSWORD=1234 -d mysql

上述指令参数说明

  • -p第一个参数是3307,代表centos8的3307端口,因为3306端口已被第一个docker占用了;第二个参数3306是docker里面MySQL的运行端口,由于每个docker都是独立运行的,因此两个docker都能使用3306。
  • 参数–name必须与第一个docker的命名不能相同,否则会有冲突。

启动docker之后,剩下的操作就是修改MySQL的用户密码加密方式,这个操作在上述已有讲述。

到此这篇关于docker 安装部署多个MySQL的实现步骤的文章就介绍到这了,更多相关docker安装部署多MySQL内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解Docker容器的日志处理

    详解Docker容器的日志处理

    这篇文章主要介绍了详解Docker容器的日志处理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • Docker 解决获取容器获取的时间不是本地时间的问题

    Docker 解决获取容器获取的时间不是本地时间的问题

    这篇文章主要介绍了Docker 解决获取容器获取的时间不是本地时间的问题的相关资料,需要的朋友可以参考下
    2016-11-11
  • 使用Golang玩转Docker API的实践

    使用Golang玩转Docker API的实践

    这篇文章主要介绍了使用Golang玩转Docker API的实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Docker挂载/etc/timezone报错问题

    Docker挂载/etc/timezone报错问题

    这篇文章主要介绍了Docker挂载/etc/timezone报错问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • docker常用命令汇总

    docker常用命令汇总

    这篇文章主要介绍了docker常用命令汇总,都是一些常用的基本命令,有需要的同学可以尝试学习下
    2020-12-12
  • docker镜像完全卸载的操作步骤

    docker镜像完全卸载的操作步骤

    这篇文章主要介绍了docker镜像完全卸载的操作步骤,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • 使用docker compose搭建consul集群环境的例子

    使用docker compose搭建consul集群环境的例子

    consul是HashCorp公司推出使用go语言编写的开源工具,用于实现分布式系统的服务发现与配置,今天给大家普及使用docker compose搭建consul集群环境的方法及consul基本知识讲解,感兴趣的朋友一起看看吧
    2021-06-06
  • 详解docker下的Mysql镜像的使用方法

    详解docker下的Mysql镜像的使用方法

    本篇文章主要介绍了详解docker下的Mysql镜像的使用方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • 将博客迁移至docker纪实

    将博客迁移至docker纪实

    作者个人博客一直是跑在阿里云主机上的,最近接触了docker 心血来潮想把自己的应用打包到docker容器中去,方便以后的迁移部署,这里把经验给大家总结分享下
    2017-05-05
  • Docker探索namespace详解

    Docker探索namespace详解

    以前对docker中的namespace了解甚少,今天在网上查阅相关文章,发现这篇还不错,介绍了namespace资源隔离以及进行namespace api操作的四种方式等内容,这里分享给大家,供参考。
    2017-10-10

最新评论