本地虚拟机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
相关文章
|
26天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
73 3
|
27天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。
本文介绍了在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。内容涵盖准备工作、下载源码、编译安装、配置服务、登录设置及实践心得,帮助读者根据需求选择最适合的安装方法。
49 2
|
29天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
85 2
|
29天前
|
Prometheus 监控 Cloud Native
基于Docker安装Grafana和Prometheus
Grafana 是一款用 Go 语言开发的开源数据可视化工具,支持数据监控和统计,并具备告警功能。通过 Docker 部署 Grafana 和 Prometheus,可实现系统数据的采集、展示和告警。默认登录用户名和密码均为 admin。配置 Prometheus 数据源后,可导入主机监控模板(ID 8919)进行数据展示。
70 2
|
1月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
58 2
|
1月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
37 3
|
19天前
|
Docker 容器
【赵渝强老师】使用二进制包方式安装Docker
本文介绍了在企业生产环境中无法直接访问外网时,如何使用Docker官方提供的二进制包进行Docker的离线安装。文章详细列出了从安装wget、下载Docker安装包、解压、复制命令到启动Docker服务的具体步骤,并提供了相关命令和示例图片。最后,还介绍了如何设置Docker为开机自启模式。
|
19天前
|
缓存 Ubuntu Linux
如何安装Docker
如何安装Docker
100 0
|
7月前
|
Java 虚拟化 Docker
Docker简介及用途,为什么要使用Docker?Docker容器和虚拟机的区别
Docker简介及用途,为什么要使用Docker?Docker容器和虚拟机的区别
|
7月前
|
虚拟化 Docker 容器
【Docker】Docker容器和虚拟机的区别是什么?
【4月更文挑战第20天】【Docker】Docker容器和虚拟机的区别是什么?