当前位置:网站首页>MySQL 实践篇 —— 主从复制
MySQL 实践篇 —— 主从复制
2022-07-28 12:06:00 【daydreamed】
MySQL 实践篇 —— 主从复制
1、概述
主从复制 就是 把 主服务器(Master)上的 二进制日志文件(binlog,记录了所有修改数据库的操作)复制到 从服务器(Slave)上执行一遍,保证 从服务器 上的数据 和 主服务器 上的数据 保持一致。
工作过程:
- 主服务器 把数据更改 记录到 二进制日志文件 中
- 从服务器 开启一个 I/O 线程 通过 MySQL 协议 把 主服务器 的 二进制日志文件 复制到自己的 中继日志文件(relay log)中
- 从服务器 开启一个 SQL 线程 执行 中继日志文件 中的内容
补充:I/O 线程 和 SQL 线程
- I/O 线程:负责读取 主服务器的二进制日志文件,并将其保存为 中继日志文件
- SQL 线程:执行 中继日志文件 中的内容

2、实践
1、在 E 盘 建立 master 和 slave 目录
2、找到本机的 MySQL 安装路径 将 整体文件夹 压缩打包
3、将 压缩包 分别拷贝到 master 和 slave 目录下,并完成解压
4、配置 MySQL 的系统文件 my.ini
master 的 my.ini 配置
用 记事本(或其它编辑器)打开 master 根目录 下的 my.ini,在 [mysqld] 下 新增
log-bin=mysql-bin server-id=3306并 保存关闭。[mysqld] log-bin=mysql-bin # 表示要生成的二进制日志文件名称 server-id=3306slave 的 my.ini 配置
用 记事本(或其它编辑器)打开 slave 根目录 下的 my.ini,将 [client] 下 的 port(端口号)从 3306 改成 3307;将 [mysqld] 下 的 port 从 3306 改成 3307,新增
log-bin=mysql-bin server-id=3307并 保存关闭。[mysqld] log-bin=mysql-bin server-id=3307 port=3307 [client] port=3307
5、启动 master 服务器,并创建一个专门用于复制的账户
打开命令窗口 cmd,进入 master 的 bin 目录,输入启动服务器的命令:
mysqld --console,启动服务器打开命令窗口 cmd,进入 master 的 bin 目录,输入
mysql -u root -p,登录到 master 服务器创建 复制账号,用户名 repuser,密码 123
mysql>Create user 'repuser'@'localhost' identified by '123'; mysql>grant replication slave on *.* to 'repuser'@'localhost'; mysql>flush privileges; mysql>show master status \G # 显示 master 状态; \G 以行进行显示,后面不用加';'


6、启动 slave 服务器,完成 slave 的配置
打开命令窗口 cmd,进入 slave 的 bin 目录, 输入启动服务器的命令:
mysqld --console, 启动服务器打开命令窗口 cmd,进入 slave 的 bin 目录,输入
mysql -u root -p登录到 slave 服务器完成 主从复制 的相关配置
mysql>change master to master_host='localhost',master_port=3306,master='repuser',master_password='123',master_log_file='mysql-bin.000001',mastet_log_pos=0;启动 slave 并 检查其状态
mysql>start slave; mysql>show slave status \G


注:检查 Slave_IO_Running 线程 和 Slave_SQL_Running 线程 是否都为 yes,如果是,表示 主从复制服务 已建立;如果否,表示 主从复制服务 未建立。
7、主从复制测试
(1)在 master 客户端,创建一个数据库 BankDB,创建成功后,在 slave 客户端 查看有没有出现 BankDB:show databases;
DROP SCHEMA IF EXISTS BankDB ;
CREATE SCHEMA IF NOT EXISTS BankDB default character set gbk;
USE BankDB;
Create table Bank(BankID int, Cname char(20), Balance decimal(10,2));
insert into Bank values (20181211,'张三', 20000);
insert into Bank values (20181212,'李四', 10000);
insert into Bank values (20181213,'王五', 20000);
master 客户端:

slave 客户端:

(2)在 master 客户端,修改 Bank 表的数据, 在 slave 客户端 查看是否更新成功
update Bank set Balance=Balance + 99;
master 客户端:

slaver 客户端:

(3)在 slave 关闭状态下(slave 客户端:stop slave,slave 服务端:Ctrl+C), 在 master 客户端 新建一个数据库 BankDB1;重新启动 slave,在 slave 客户端 查看有没有出现新建的数据库 BankDB1
DROP SCHEMA IF EXISTS BankDB1;
CREATE SCHEMA IF NOT EXISTS BankDB1 default character set gbk;
USE BankDB1;
Create table Bank(BankID int, Cname char(20), Balance decimal(10,2));
insert into Bank values (20181211,'张三', 20000);
insert into Bank values (20181212,'李四', 10000);
insert into Bank values (20181213,'王五', 20000);
master 客户端:

slaver 客户端:



边栏推荐
- Problem solving during copilot trial
- Black cat takes you to learn EMMC Protocol Part 26: hardware reset operation of EMMC (h/w reset)
- Chapter IX rest Service Security
- 《TiDB 6.x in Action》发布,凝聚社区集体智慧的 6.x 实践汇总!
- Machine learning Basics - decision tree-12
- Black cat takes you to learn EMMC Protocol Part 24: detailed explanation of EMMC bus test program (cmd19 & cmd14)
- 2020-12-27
- Stepless dimming colorful RGB mirror light touch chip-dlt8s12a-jericho
- Complete set of SSM framework online bookstore
- BiliBili Yang Zhou: above efficiency, efficient delivery
猜你喜欢

Original juice multifunctional Juicer touch chip-dlt8t02s-jericho
![[Bi design teaching] STM32 and FreeRTOS realize low power consumption](/img/2b/3af85135e08599aaa425698c0e83aa.png)
[Bi design teaching] STM32 and FreeRTOS realize low power consumption

Black Scholes Merton European option pricing formula

Fundamentals of machine learning - support vector machine svm-17
![[embedded explanation] key scanning based on finite state machine and stm32](/img/ce/cc3f959a4e4f5b22e2c711ea887ad7.png)
[embedded explanation] key scanning based on finite state machine and stm32

Brief introduction to JS operator

Machine learning Basics - decision tree-12

Form for real-time custom verification
![[embedded C foundation] Part 1: basic data types](/img/45/b0bc9e90b0582f0f2624ce27b5a76c.png)
[embedded C foundation] Part 1: basic data types

Call / put option price curve
随机推荐
Jetpack 全家桶之 LiveData 使用及源码篇
【嵌入式C基础】第4篇:运算符的使用
[graduation design] smart home system based on ZigBee - single chip microcomputer Internet of things stm32
01 introduction to pyechars features, version and installation
How can non-standard automation equipment enterprises do well in product quality management with the help of ERP system?
Ruan Bonan of Green Alliance Technology: cloud native security from the open source shooting range
Array, string de duplication
butterfly spreads
【嵌入式C基础】第2篇:进制转换与BCD编码
SQL most commonly used basic operation syntax
黑猫带你学eMMC协议第27篇:什么是eMMC的动态容量(Dynamic Capacity)?
黑猫带你学eMMC协议第26篇:eMMC的硬件复位操作(H/W reset)
10、 Kubernetes scheduling principle
Comments are not allowed in JSON
Single option trading and cross trade
BiliBili Yang Zhou: above efficiency, efficient delivery
[graduation design teaching] ultrasonic ranging system based on single chip microcomputer - Internet of things embedded stm32
[FPGA]: MATLAB generates COE files
Use and source code of livedata in jetpack family bucket
2020-12-27