mysql5.7主从搭建

 

 

1. 主从原理

引用网上的图:

  • 主服务器上面的任何休息都会通过自己的I/O thread线程保存在二进制日志(bin log)里面
  • 从服务器上面也会启动一个I/O thread, 通过配置好的用户名和密码,连接主服务器上面请求二进制日志,然后把读取的二进制日志写到本地的一个Relay log(中继日志)里面。
  • 从服务器上面同时启动一个SQL thread 定时检查relay log(这个文件也是二进制),如果发现有更新立即把更新的内容在本机的数据库上执行一遍。

2. 配置操作

2.1 Master节点配置`/etc/my.cnf`(master节点上执行)

vim /etc/my.cnf

[mysqld]
## 同一局域网内注意要唯一
server-id=100
## 开启二进制日志功能,可以随便去
log-bin=mysql-bin
## 复制过滤: 不需要备份的数据库, 不输出
binlog-ignore-db=mysql
## 为每一个session 分配的内存,在事务过程中用来存储二进制日志的缓存
binlog_cache_size=1M
## 主从复制的格式(mixed、statement、row,默认格式是statement)
binlog_format=mixed

 2.2 Slave节点配置`/etc/my.cnf`(slave节点上执行)

vim /etc/my.cnf
 
[mysqld]
## 同一局域网内注意要唯一
server-id=102
## 开启二进制日志功能,以备Slave作为其他Slave的Master时使用
log-bin=mysql-slave-bin
## relay_log配置中继日志
relay_log=mky-mysql-relay-bin
## 复制过滤: 不需要备份的数据库, 不输出
binlog-ignore-db=mysql
## 如果需要同步函数或者存储过程
log_bin_trust_function_creators=true
## 为每一个session 分配的内存,在事务过程中用来存储二进制日志的缓存
binlog_cache_size=1M
## 主从复制的格式(mixed、statement、row,默认格式是statement)
binlog_format=mixed
## 跳过主从复制中遇到的所有错误或者指定类型的错误,避免slave端复制中断
## 1062错误是指一些主键重复, 1032错误是因为主从数据库数据不一致
slave_skip_errors=1062

2.3  在Master服务器授权slave服务器可以同步权限(master节点上执行)

mysql -uroot -pmaster的密码

# 授予slave服务器可以同步master服务

grant replication slave, replication client on *.* to 'root'@'slave的ip' identified by 'slave服务器的密码';

flush privileges;

# 查看mysql 有哪些用户以及对应的ip权限
select  user,host from mysql.user;

2.4 查看master服务的binlog文件名和位置(master节点执行)

show master status;

2.5 slave进行关联master节点(slave节点执行)

  • 进入到slave节点
  • 开始绑定
# 根据上面的show master status 查出来的结果填写
change master to master_host='master服务器的ip', master_user='root', master_password='master密码',master_port=3306,master_log_file='mysql-bin.000001', master_log_pos=621;

# 启动
start slave;

  • 查看启动状态
# 查看启动状态  (必须两个yes IO_RUNNING, SQL_RUNNING 都是yes才算成功)
show slave status \G;

常见错误:

Slave_SQL_Running:No   MYSQL镜像服务器因错误停止的恢复

解决方式:

stop slave

set global sql_slave_skip_counter=1;

start slave

show salve status \G; 

Slave_IO_Running:No 

解决方式:

# master节点运行
show master status;


# 从节点运行

stop slave

change master to master_log_file='上面查出的结果',master_log_pos=上面查出的结果;

start slave

show salve status \G; 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值