mysql在windows下实现主从复制

1.mysql主从复制原理和好处

1.1 mysql主从复制原理

  • 从库会生成两个线程,一个I/O线程,一个SQL线程;

  • I/O线程会去请求主库的binlog,并将得到的binlog写到本地的relay-log(中继日志)文件中;

  • 主库会生成一个Log Dump Threadp线程,用来给从库I/O线程传binlog;

  • SQL线程,会读取relay log文件中的日志,并解析成sql语句逐一执行;

1.2 主从复制好处

  • 主服务器负责写,从服务器负责读,可以避免主库出现锁表的时候,通过从库可以保证业务的正常运转;

  • 数据备份,防止数据丢失;

  • 减轻服务器的压力,降低磁盘I/O访问的频率,提高单个服务器的性能;

2.mysql主从复制步骤

2.1 mysql官网下载

        官网下载地址:https://downloads.mysql.com/archives/community/

2.2 把mysql-8.0.15-winx64.zip  解压为(mysql11和mysql12)

 

#新建my.ini文件  主要修改红色部分

[client]

port=3307

[mysql]

default-character-set=gbk

[mysqld]

# The TCP/IP Port the MySQL Server will listen on
port=3307

#Path to installation directory. All paths are usually resolved relative to this.
basedir="E:/lightchen/java_learning/test1/mysql11"

#Path to the database root
datadir="E:/lightchen/java_learning/test1/mysql11/data"

# The default character set that will be used when a new schema or table is
# created and no character set is defined
character-set-server=gbk

# The default storage engine that will be used when create new tables when
default-storage-engine=INNODB

2.3 创建mysql11实例

进入cmd管理员进入mysql11 bin目录  执行命令:

mysqld.exe --initialize --console(记住密码 后面修改密码)

#创建mysql11实例

mysqld.exe --install mysql11 

--defaults-file="E:/lightchen/java_learning/test1/mysql11/my.ini"

#修改可执行目录

#cmd   regedit 注册列表

#启动服务mysql11

net start mysql11

#登录mysql

mysql -uroot -p3307 -p

#修改密码 

alter user 'root'@'localhost' identified with mysql_native_password by 'root';

#更改my.ini配置文件  追加主库相关信息

#允许最大连接数

max_connections=200

#=========主从复制关键配置=====================

#主库和从库需要不一致,配一个唯一的ID编号,1至32。 手动设定

server_id=1

#二进制文件存放路径,存放在根目录data

log-bin=mysql-bin

#binlog-do-db=test #需要复制的库,多个库用逗号隔开,如果此项不配置所有主库都参与复制

#binlog-ignore-db=mysql #不需要复制的库,和上项同理

#=========主从复制关键配置=====================

#重启mysql11实例

#创建myslave用户,并赋予权限

create user 'myslave'@localhost identified by  'myslave'; --创建用户

grant all privileges on *.* to 'myslave'@localhost with grant option; --赋予权限

#记录File 和 Position值

show master status;

2.4 创建mysql12实例同上(2.3)

#my.ini配置文件

[client]

port=3308

[mysql]

default-character-set=gbk

mysqld]

# The TCP/IP Port the MySQL Server will listen on
port=3308

#Path to installation directory. All paths are usually resolved relative to this.
basedir="E:/lightchen/java_learning/test1/mysql12"

#Path to the database root
datadir="E:/lightchen/java_learning/test1/mysql12/data"

# The default character set that will be used when a new schema or table is
# created and no character set is defined
character-set-server=gbk

# The default storage engine that will be used when create new tables when
default-storage-engine=INNODB

#允许最大连接数
max_connections=200
#=========主从复制关键配置=====================
#主库和从库需要不一致,配一个唯一的ID编号,1至32。 手动设定
server_id=2 
#二进制文件存放路径,存放在根目录data
#log-bin=mysql-bin 
#binlog-do-db=test #需要复制的库,多个库用逗号隔开,如果此项不配置所有主库都参与复制
#binlog-ignore-db=mysql #不需要复制的库,和上项同理
#=========主从复制关键配置=====================

2.5 从库执行命令实现主从复制

change master to master_host="localhost",master_user="myslave",master_password="myslave", master_log_file="mysql-bin.000001",master_log_pos=725,master_port=3307;

#重启数据库

#从库中查看状态

2.6 测试主从复制

2.6.1 主数据库使用myslave用户登录

2.6.2 主库创建test数据库

2.6.3 从库是否也创建了test数据库

2.6.4 主库在test数据库中创建一张用户表t_user并插入两条数据

2.6.5 查看从数据库是否也同步了表t_user和数据

2.6.6 主库中修改数据同样可以同步到从库

#主库

#从库

2.6.7 从库中修改数据不可以同步到主库中

#一般主库用来增、删、改,从库用来读  一主对多从

#从库

#主库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值