本地虚拟机centos7通过docker安装主从mysql5.7.21

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 本地虚拟机centos7通过docker安装主从mysql5.7.21

1、下载mysql镜像

docker pull mysql:5.7.21

2、在home下建立mydata目录

在/home/mydata/mysql下面建立两个目录 conf与data

3、docker运行起来两个服务器的服务

docker run -p 3306:3306 --name mastermysql -v /home/mydata/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=mastermysql -d mysql:5.7.21

docker run -p 3306:3306 --name slavemysql -v /home/mydata/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=slavemysql -d mysql:5.7.21

4、开放下面的防火墙端口以便访问

firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-all

5、主要是考虑配置文件,拷贝与使用

docker exec -it mastermysql bash

实际配置文件在/etc/mysql/conf.d里的mysql.cnf

docker top mastermysql 查看容器mastermysql的进程信息

docker inspect mastermysql 查看docker容器更多详尽信息

6、修正主从配置文件

看这个容器的使用的mysql配置文件如下

/etc/mysql/conf.d 这个目录里的mysql.cnf

启动的时候用宿主/home/mydata/mysql/conf/master.cnf的把上面的替换掉就可以了

从服务器修改成slave.cnf

这样只要编辑宿主的两个配置文件就可以了

配置好master.cnf

server-id=1

log-bin=mysql-bin

与slave.cnf

server-id=2

log-bin=mysql-bin

用docker cp 或就直接用mount的

df -g看到的文件系统来进行拷贝 如下

cp /home/mydata/mysql/conf/mysql.cnf /var/lib/docker/overlay2/f6ac448af8a0ab4e78ed7311ef8b4498ecaf45d4596241a4a94f4b7086f88467/merged/etc/mysql/lqy

修改或覆盖配置后docker restart mastermysql 重启

show variables like '%%'; 可以查询mysql所有相关参数值

/etc/mysql/mysql.conf.d/mysqld.cnf 目前只能在这个版本的这个文件进行修改加入主从参数,启动mysql才有效,用下面的查询sql命令可以看是否设置master正常,另外这个版本的数据目录是在

/var/lib/mysql 之前好像搞错了

show variables like '%log_bin%';

show master status;

主mysql

GRANT REPLICATION SLAVE ON *.* to 'backup'@'%' identified by 'backup';

show grants for 'backup'@'%';

从mysql

CHANGE MASTER TO

MASTER_HOST='192.168.199.151',

MASTER_PORT=3306,

MASTER_USER='backup',

MASTER_PASSWORD='backup';

START SLAVE;

show slave status;

好像新的docker启动服务后,上面slave需要重新执行一下,实际生产要考虑自动吧

这样新建的数据库与表数据等都会从主服务器同步到从服务器上了

修改成下面的方式就可以正常使用了

先停掉上面的docker stop mastermysql docker rm mastermysql

docker run -p 3306:3306 --name mastermysql -v /home/mydata/mysql/data:/var/lib/mysql -v /home/mydata/mysql/conf/master.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf -e MYSQL_ROOT_PASSWORD=mastermysql -d mysql:5.7.21

docker run -p 3306:3306 --name slavemysql -v /home/mydata/mysql/data:/var/lib/mysql -v /home/mydata/mysql/conf/slave.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf -e MYSQL_ROOT_PASSWORD=slavemysql -d mysql:5.7.21


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
24天前
|
关系型数据库 MySQL Linux
Docker安装Mysql5.7,解决无法访问DockerHub问题
当 Docker Hub 无法访问时,可以通过配置国内镜像加速来解决应用安装失败和镜像拉取超时的问题。本文介绍了如何在 CentOS 上一键配置国内镜像加速,并成功拉取 MySQL 5.7 镜像。
208 2
Docker安装Mysql5.7,解决无法访问DockerHub问题
|
28天前
|
数据可视化 大数据 Linux
OpenEuler虚拟机安装保姆级教程 | 附可视化界面
本文介绍了如何在VMware中安装openEuler操作系统,从选择合适的镜像版本下载开始,到创建虚拟机、配置CPU虚拟化、进行系统安装、设置网络连接,直至安装DDE桌面环境实现图形化操作。openEuler是一款由华为开源的操作系统,支持多种处理器架构,广泛应用于数据库、大数据、云计算等领域。文中还分享了安装过程中的注意事项及解决网络问题的方法,适合初次接触openEuler的用户参考学习。
199 3
OpenEuler虚拟机安装保姆级教程 | 附可视化界面
|
26天前
|
Java jenkins 持续交付
Centos7下docker的jenkins下载并配置jdk与maven
通过上述步骤,您将成功在CentOS 7上的Docker容器中部署了Jenkins,并配置好了JDK与Maven,为持续集成和自动化构建打下了坚实基础。
78 1
|
28天前
|
网络安全 虚拟化 Docker
SSH后判断当前服务器是云主机、物理机、虚拟机、docker环境
结合上述方法,您可以对当前环境进行较为准确的判断。重要的是理解每种环境的特征,并通过系统的响应进行综合分析。如果在Docker容器内,通常会有明显的环境标志和受限的资源视图;而在云主机或虚拟机上,虽然它们也可能是虚拟化的,但通常提供更接近物理机的体验,且可通过硬件标识来识别虚拟化平台。物理机则直接反映硬件真实信息,较少有虚拟化痕迹。通过这些线索,您应该能够定位到您所处的环境类型。
21 2
|
1月前
|
Linux 虚拟化
vmware虚拟机安装2024(超详细)
vmware虚拟机安装2024(超详细)
244 6
|
2月前
|
Unix Linux 开发工具
centos的官网下载和vm16虚拟机安装centos8【保姆级教程图解】
本文详细介绍了如何在官网下载CentOS 8以及在VMware Workstation Pro 16虚拟机上安装CentOS 8的步骤,包括可能出现的问题和解决方案,如vcpu-0错误的处理方法。
centos的官网下载和vm16虚拟机安装centos8【保姆级教程图解】
|
1月前
|
弹性计算 关系型数据库 MySQL
Docker安装MySQL
这篇文章详细介绍了如何使用Docker安装MySQL数据库服务,包括拉取镜像、配置数据卷以及启动容器的步骤。
248 0
Docker安装MySQL
|
1月前
|
存储 Linux 开发者
虚拟机centos7.9一键部署docker
本文介绍了如何在 CentOS 7.9 虚拟机上安装 Docker 社区版 (Docker-ce-20.10.20)。通过使用阿里云镜像源,利用 `wget` 下载并配置 Docker-ce 的 YUM 仓库文件,然后通过 `yum` 命令完成安装。安装后,通过 `systemctl` 设置 Docker 开机自启并启动 Docker 服务。最后,使用 `docker version` 验证安装成功,并展示了客户端与服务器的版本信息。文中还提供了列出所有可用 Docker-ce 版本的命令。
151 0
虚拟机centos7.9一键部署docker
|
2月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
2月前
|
存储 Linux Docker
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
关于如何在CentOS 7.6上安装Docker、介绍Docker存储引擎以及服务进程关系的实战案例。
136 3
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
下一篇
无影云桌面