docker安装MySQL8.0.35主从复制(实战保姆级)
很久没有记录了,今天有时间就记录一下最近安装遇到的问题

liunx安装docker这个是前提,就不多过述
1 准备两台服务器
10.104.13.139
10.104.13.140
2 确保liunx安装的docker正常运行的
ps:最好提前关闭防火墙 或者提前开放对应端口 不然同步会失败的 关闭防火墙后记得重启docker 不然docker容器会启动失败的
1:查看防火状态
systemctl status firewalld
service iptables status 2:暂时关闭防火墙
systemctl stop firewalld
service iptables stop 3:永久关闭防火墙
systemctl disable firewalld
chkconfig iptables off
// 重启命令
systemctl restart docker
3 后续就正式的开始安装了
docker run -d -p 4406:3306 \
--name mysql-4406 \
--privileged=true \
-v /app/mysql-4406/log:/var/log/mysql \
-v /app/mysql-4406/data:/var/lib/mysql \
-v /app/mysql-4406/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=root \
mysql:8.0.35 --lower_case_table_names=1 命令解释:
-d: 后台运行容器,并返回容器ID
-p 3311:3306 :将容器的3306端口映射到宿主机3310端口
-e MYSQL_ROOT_PASSWORD=123456 :配置数据库连接密码
-v /home/mysql/node-2/config:/etc/mysql/ :将配置文件夹挂载到宿主机
–name mysql01(02):将容器命名为 mysql01(02)
lower_case_table_names=1 不区分大小写
查看容器是否正常启动
docker ps
如果启动失败 需要查看容器的日志
docker ps -a
docker logs 容器id
后续就是在挂载的目录创建MySQL的配置文件了
cd /app/mysql-4406/conf
vim my.cnf // 编辑插入配置 就不再过多解释 基本的配置 [mysqld]
log-error=/var/log/mysqld.log
server_id=101
binlog-ignore-db=mysql
log-bin=mall-mysql-bin
binlog_cache_size=1M
binlog_format=mixed
expire_logs_days=7
slave_skip_errors=1062
编辑保存后,需要重启容器使其配置文件生效
-- 重启镜像
docker ps
docker restart id
下一步就是进入到MySQL中创建同步的用户信息并赋予其权限
--进入镜像登陆MySQL
docker exec -it id /bin/bash
mysql -uroot -p --创建同步账号
CREATE USER 'slave'@'%' IDENTIFIED BY 'slave';
--给账号赋权限
GRANT ALL ON *.* TO 'slave'@'%' WITH GRANT OPTION;
-- 刷新权限
FLUSH PRIVILEGES; --查看master日志信息
show master status;
完成后,master库的操作就完成了,后续就不要再动主库了,记住show master status;显示的值,slave同步用到

主要是用到 file和position的值
4 安装slave数据库 和master安装差不多
docker run -d -p 4407:3306 \
--name mysql-4407 \
--privileged=true \
-v /app/mysql-4407/log:/var/log/mysql \
-v /app/mysql-4407/data:/var/lib/mysql \
-v /app/mysql-4407/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=root \
mysql:8.0.35 --lower_case_table_names=1
// 查询容器是否启动
docker ps
// 创建配置文件
cd /app/mysql-4407/conf
vim my.cnf [mysqld]
server_id=102
binlog-ignore-db=mysql
log-bin=mall-mysql-slave1-bin
binlog_cache_size=1M
binlog_format=mixed
expire_logs_days=7
slave_skip_errors=1062
relay_log=mall-mysql-relay-bin
log_slave_updates=1
read_only=1
-- 重启镜像
docker restart id
--进入镜像登陆MySQL
ocker exec -it id /bin/bash
mysql -uroot -p change master to master_host='10.104.13.139', master_user='slave', master_password='slave', master_port=4406, master_log_file='mall-mysql-bin.000001', master_log_pos=875, master_connect_retry=30, get_master_public_key=1; 解释:
get_master_public_key 密码加密方式
CHANGE MASTER TO MASTER_HOST='主机的IP地址',
MASTER_USER='slave'(刚刚配置的用户名),
MASTER_PASSWORD='123456'(刚刚授权的密码),
master_port=主机开放的端口 我这里是3310端口,
MASTER_LOG_FILE='mysql-bin.具体数字'
MASTER_LOG_POS=具体值(之前的Position);
master_connect_retry=30, 在主服务器宕机或连接丢失的情况下,从服务器线程重新尝试连接主服务器之前睡眠的秒数。如果主服务器.info文件中的值可以读取则优先使用。如果未设置, 默认值为60 --启动同步
start slave;
--查看同步状态
show slave status \G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes --都为yes 就是成功了
--如果失败了 Slave_IO_Running: NO 重复擦操作下面的步骤
stop slave;
reset slave all;
change master to master_host='10.104.13.139', master_user='slave', master_password='slave', master_port=4406, master_log_file='mall-mysql-bin.000001', master_log_pos=875, master_connect_retry=30, get_master_public_key=1;
-- 需要检查 slave 的权限 或者 master_log_file master_log_pos 信息是否对上
start slave;
show slave status \G;
到这里主从复制就完成了,后续就是验证了,这里就不多说了
#登录master库 #创建数据库testdb,使用默认字符集
create database test11; #在slave中查看是否有test11库
show database;
打完收工,欢迎交流。2024-05-25 14:53:25
docker安装MySQL8.0.35主从复制(实战保姆级)的更多相关文章
- docker安装Mysql8.0并挂载外部配置和数据
环境 CentOS Linux release 7.7.1908 (Core) 拉取Mysql8.0 镜像 docker pull mysql:8.0.18 创建挂载目录 mkdir -p /home ...
- Docker安装MySQL8.0
环境 CentOS 7.5 Docker 1.13.1 MySQL 8.0.16 安装 拉取镜像 默认拉取最新版本的镜像 $ docker pull mysql 如果要指定版本,使用下面的命令 $ d ...
- Docker 安装mysql8.0
1. 下载Mysql的Docker镜像: $ docker search mysql (搜索mysql镜像) $ docker pull mysql (下载mysql镜像,默认最新版本) 2. 运行镜 ...
- Docker部署Mysql8.0.20并配置主从复制
1. Linux安装Mysql8.0.20并配置主从复制(一主一从,双主双从) Linux安装Mysql8.0.20并配置主从复制(一主一从,双主双从) 2. 前提准备 # 创建主从数据库文件夹 ...
- Centos7安装MySQL8.0 - 操作手册
MySQL 8 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能! 一. Mysql8.0版本相比之前版本的一些特性 1) ...
- CentOS7安装MySQL8.0小计
之前讲配置文件和权限的时候有很多MySQL8的知识,有同志说安装不太一样,希望发个文,我这边简单演示一下 1.环境安装 下载MySQL提供的CentOS7的yum源 官方文档:<https:// ...
- docker安装MySQL8,目录挂载、配置用户名密码、忽略表名大小写、连接数、特殊字符、时区
原文:docker安装MySQL8,目录挂载.配置用户名密码.忽略表名大小写.连接数.特殊字符.时区 一.环境配置 1.系统:centos7.3 2.docker版本:Docker version 1 ...
- CentOS7.5 上使用 bundle 文件安装 MySQL8.0 MySQL5.0
CentOS7.5 上使用 bundle 文件安装 MySQL8.0 MySQL5.0 CentOS7.5 环境 [root@instance-fjii60o3 ~]# rpm -qi centos- ...
- 【MySQL】Docker搭建MySQL8.0
目录 Docker搭建MySQL8.0 目的: 1.安装Docker 2.查看docker镜像 3.拉取mysql官方镜像 4. 查看目前的镜像 5.运行docker mysql镜像 6.查看目前运行 ...
- CentOS7.4 源码安装MySQL8.0
MySQL 8 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能! 以下为本人2018.4.23日安装过程的记录.整个过程大 ...
随机推荐
- Go 语言中 For 循环:语法、使用方法和实例教程
for循环用于多次执行特定的代码块,每次都可以使用不同的值.每次循环执行都称为一次迭代.for循环可以包含最多三个语句: 语法 for 语句1; 语句2; 语句3 { // 每次迭代要执行的代码 } ...
- 财务人提高竞争力必备的技能,怎么能少了ta!
从近年来大数据技术的发展趋势和相关产业飞速发展的状态,可以看出当前"数据分析"的热度可以说是有增无减,而且从市场上对数据分析人才的需求缺口也可以看出企业对数据分析的重视程度.未来随 ...
- Spring的事务管理方式编程式和声名式
spring的事务管理方式: 一.声名式 二.编程式 事务:查询不会影响数据的改变,对于增删改必须进行事务的管理.如果没有事务管理spring也提供了默认传播方式REQUIRED 一.声名式事务管理( ...
- Python scipy.ndimage.find_objects用法及代码示例
用法 scipy.ndimage.find_objects(input, max_label=0) 在标记数组中查找对象. 参数: input: 整数数组 包含由不同标签定义的对象的数组.值为 0 的 ...
- HarmonyOS:使用MindSpore Lite引擎进行模型推理
场景介绍 MindSpore Lite是一款AI引擎,它提供了面向不同硬件设备AI模型推理的功能,目前已经在图像分类.目标识别.人脸识别.文字识别等应用中广泛使用. 本文介绍使用MindSpore ...
- 前端与 HTML
0x1 前端 什么是前端 解决图形用户界面(GUI)人机交互的问题 跨终端 PC/移动浏览器 客户端/小程序 VR/AR 等 Web 技术栈 一句话总结前端工程师的工作:使用 Web 技术栈解决多端 ...
- redis 简单整理——开发和运维中的问题[二十四]
前言 简单介绍一下开发和运维中的问题. 正文 从上文中介绍了,我们有了一个副本了,通过复制的方式. 这些副本可以应用于读写分 离.故障转移(failover).实时备份等场景. 那么可以关注一些开发和 ...
- locust的 -T,--tags使用
官网的TAG配置说明:-T [TAG [TAG ...]], --tags [TAG [TAG ...]]List of tags to include in the test, so only ta ...
- Cache Aside Pattern缓存+数据库读写模式的分析
1.Cache Aside Pattern(1)读的时候,先读缓存,缓存没有的话,那么就读数据库,然后取出数据后放入缓存,同时返回响应 (2)更新的时候,先删除缓存,然后再更新数据库 2.为什么是删除 ...
- Oracle 查询超级慢之buffer sort
查询超级慢之buffer sort 在视图中增加了一个临时表作为一个数据源进行id和名称的转换,没加的时候一秒不到,加了以后14秒,感觉有点问题,于是打开了解释计划看了下,发现这个buffer sor ...