mysql主从配置

两个服务器的数据库版本要一致。
读写分离,减低数据库的压力,提高数据库的并发性能。
做数据热备,后备数据库,一旦主服务器故障,可以切换到从数据库继续工作,避免数据丢失。
原理:
主数据库有个bin-log二进制文件,记录了所有sql语句
将bin-log里的sql语句复制出来
在从数据库的relay-log重做日志文件中在执行一遍这些sql语句
步骤:

  • 步骤一:主库db的更新事件(update、insert、delete)被写到binlog

  • 步骤二:从库发起连接,连接到主库

  • 步骤三:此时主库创建一个binlog dump thread,把binlog的内容发送到从库

  • 步骤四:从库启动之后,创建一个I/O线程,读取主库传过来的binlog内容并写入到relay log

  • 步骤五:还会创建一个SQL线程,从relay
    log里面读取内容,从Exec_Master_Log_Pos位置开始执行读取到的更新事件,将更新内容写入到slave的db

操作:修改my.cnf文件,在[mysqld]加入对应的内容
设置主库:

# 服务的唯一编号
server-id = 1

# 开启mysql binlog功能
log-bin = mysql-bin

# binlog记录内容的方式,记录被操作的每一行
binlog_format = ROW

# 减少记录日志的内容,只记录受影响的列
binlog_row_image = minimal

# 指定需要复制的数据库名为jgyw
binlog-do-db = jgyw

设置从库:

 服务的唯一编号
server-id = 2

# 开启mysql binlog功能
log-bin = mysql-bin

# binlog记录内容的方式,记录被操作的每一行
binlog_format = ROW

# 减少记录日志的内容,只记录受影响的列
binlog_row_image = minimal

# 指定需要复制的数据库名为jgyw
replicate-do-db = jgyw

主库相关语句:

show variables like '%server_id%';
show master status;

从库相关语句:

show variables like '%server_id%';
STOP SLAVE IO_THREAD FOR CHANNEL
change master to master_host='1.117.66.17',master_user='root',master_password='*********',master_log_file='mysql-bin.000004',master_log_pos=16347;
start slave
stop slave
#检查从服务器复制功能状态
show slave status;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值