当前位置: 首页 > news >正文

mysql克隆master_MySQL复制(二)Master-Slave复制实践

1. 准备工作

首先要准备2台机器,分别安装mysql

linux系统为centos

机器分别为:

Master: 192.168.1.227

Slave:192.168.1.225

场景:master和slave都是刚创建的数据库,即数据是一致的场景下

2. 配置复制

大致步骤如下:

1) 在每个服务器上创建一个复制账号

2) 配置Master和Slave

3) Slave连接Master开始复制

2.1 在Master上创建复制账号

在master上创建一个账号slave,密码slave,并赋予REPLICATION SLAVE权限

mysql>GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.1.225' IDENTIFIED BY 'slave';

2.2 配置Master

# vi /etc/my.cnf

确保mysqld下面有如下配置:

[mysqld]

port = 3306

server-id = 1

log_bin = mysql-bin

socket = /tmp/mysql.sock

skip-locking

key_buffer_size = 16M

max_allowed_packet = 1M

table_open_cache = 64

sort_buffer_size = 512K

net_buffer_length = 8K

read_buffer_size = 256K

read_rnd_buffer_size = 512K

myisam_sort_buffer_size = 8M

binlog_format=ROW

log-slave-updates

sync_binlog=1

auto_increment_increment=2

auto_increment_offset=1

server_id: 必须配置,且不能与slave的server_id相同

log_bin: 开启二进制日志

保存并退出,重启master

service mysqld restart

进入sql控制台,运行命令SHOW MASTER STATUS或者show master status\G

6bacdd1bcbb84680369ebc89b884c858.png

2.3 配置Slave

在Slave机器上

# vi /etc/my.cnf

[mysqld]

port = 3306

server-id = 2log_bin = mysql-bin

relay_log = mysql-relay-bin

log_slave_updates = 1

read_only = 1

server_id: 必须配置,且不能与slave的server_id相同

log_bin: 开启二进制日志

relay_log配置中继日志,log_slave_updates表示slave将复制事件写进自己的二进制日志(后面会看到它的用处)

保存并重启slave

2.4 开始复制

让slave连接master

mysql>CHANGE MASTER TO MASTER_HOST='192.168.1.227',MASTER_USER='slave',MASTER_PASSWORD='slave',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=106;

注意红色部分

MASTER_LOG_FILE对应master的file

MASTER_LOG_POS对应master的Position

运行命令:mysql>show slave status\G

29d623d97893f6b005140bde0b6f1a03.png

Slave_IO_State, Slave_IO_Running, 和Slave_SQL_Running表明slave还没有开始复制过程。日志的位置为4而不是0,这是因为0只是日志文件的开始位置,并不是日志位置。实际上,MySQL知道的第一个事件的位置是4。

开始复制,运行命令:mysql> START SLAVE;

803dac84284d6f3d9236a917ccf11b61.png

Slave_IO_Running, 和Slave_SQL_Running都是yes,表示启动成功

在master上执行sql操作

mysql>usetest;

mysql>create table test1(id int,name varchar(20));

mysql>insert intotest1 values(1,'2');

在slave上查看

d655ae90241713fa4aa4cb4e122de7b8.png

说明复制成功了。

相关文章:

  • java map 平均值_使用Java 8获取两个HashMap的平均值
  • python中给出一个不超过10的正整数n_大学python题 求大佬解答!!!
  • docker建多个mysql_在Linux下使用Docker-compose建立多个数据库
  • 平安科技java在线考试_都有哪些开源的在线考试系统?
  • java clone性能比较_Java深度拷贝方式和性能对比
  • 老黄历java_基于聚合数据的老黄历接口调用示例-JAVA版
  • java properties api_【001】java中配置文件properties的操作
  • java 获取代码line_linedemo.java
  • java spring 加载顺序_java编程之如何控制springboot中bean的加载顺序
  • java注册用户信息_界面设计之注册用户信息
  • java 解析der文件_[Java]读取文件方法大全
  • java中成员变量的分类_Java基础—变量分类、类与对象
  • java语言字符串代码_JAVA语言实现字符串排序的代码教程
  • java findcontour_cvFindContours获取轮廓数目和轮廓图像
  • java if 没有_使用if语句时,为什么我的代码没有给出正确的答案? - java
  • 【Leetcode】101. 对称二叉树
  • angular2开源库收集
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • ECMAScript6(0):ES6简明参考手册
  • java中具有继承关系的类及其对象初始化顺序
  • JS+CSS实现数字滚动
  • leetcode98. Validate Binary Search Tree
  • MySQL用户中的%到底包不包括localhost?
  • PHP那些事儿
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • Spring Boot快速入门(一):Hello Spring Boot
  • spring security oauth2 password授权模式
  • Vue--数据传输
  • Windows Containers 大冒险: 容器网络
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 模型微调
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 大数据全解:定义、价值及挑战
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • #php的pecl工具#
  • ${ }的特别功能
  • (1)常见O(n^2)排序算法解析
  • (13)Hive调优——动态分区导致的小文件问题
  • (八)Flink Join 连接
  • (一)Java算法:二分查找
  • *p++,*(p++),*++p,(*p)++区别?
  • .NET 设计一套高性能的弱事件机制
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • .net图片验证码生成、点击刷新及验证输入是否正确
  • @data注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • @EnableConfigurationProperties注解使用
  • [145] 二叉树的后序遍历 js
  • [acwing周赛复盘] 第 69 场周赛20220917
  • [AIGC] Spring Interceptor 拦截器详解
  • [autojs]autojs开关按钮的简单使用