MySql 的主从复制

第一步 提出问题

1.主从复制是什么?我们为什么要做mysql的主从复制?它能给我们带来什么益处?
主从复制的概念
主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;主数据库一般是实时的业务数据库

2.为什么要做mysql的主从复制l?
通俗来讲,如果对数据库的读和写都在同一个数据库服务器中操作,业务系统性能会降低。
为了提升业务系统性能,优化用户体验,可以通过做主从复制(读写分离)来减轻主数据库的负载。
而且如果主数据库崩溃,可快速将业务系统切换到从数据库上,可避免数据丢失。
这个时候 主从复制就成了主角
将数据库作为单独一台服务器来运行
从同一台服务器出发 去访问多台数据库服务器
这个时候只需要有一台数据库服务器作为主数据库服务器
来完成写入的功能
其他的数据库服务器只需要完成从主数据库中读取数据
保持主从同步即可
主从复制实际上就是从服务器在复制主服务器的动作 以此来保持数据的一致性

3.它的作用
一是作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作;
二是可在从数据库作备份、数据统计等工作,这样不影响主数据库的性能;

第二步 解决问题

1.主数据库服务器和从数据库服务器怎样才能保证数据一致呢?
这时候就需要用到binlog日志了
binlog日志简单来说
就是用来记录主数据库服务器的一系列执行的操作
此时
从数据库服务器只需要从主服务器中读取binlog日志的内容
对此进行操作
就能够保证主从服务器的数据一致
前提是主从数据库的环境和配置是想同的

2.完成主从复制需要哪些条件?
主从数据库的配置
从数据库的配置

要求1: 
	主从数据库的环境一致
    操作系统一致,
    mysql的版本,
    数据库的数据,
    两台数据库进行Ping通
要求2: 
	主数据库指定server_id = 2
	主数据库开启bin-log日志

max_allowed_packet = 20M 读写允许的内存 默认为1M 尽量配置的大一点 以免遇到读写无法记录的情况
server_id = 70
log-bin=mysqlbin
binlog_format = mixed

从数据库的配置

	从数据库指定 = server_id
	从数据库开启bin-log日志
第三步 总结问题与回顾

从数据库中必须有一个用户可以在从数据库的机器上去连接主数据库

    grant all on *.* to zwc@192.168.2.69 identified by 'zwc';
    show master status  

查看binlog日志的状态
会得到master_log_file 和 master_log_pos 两个参数和他们对应的值
先用主数据库服务器分配的用户连接主数据库 试试能不能链接成功
成功之后 用root用户连接mysql 执行如下命令
stop slave; 关闭从库

change master to master_host='192.168.2.70',master_user='qy',master_password='qy',master_log_file='binlog000007',master_log_pos=235;show slave status\G;

如果
Slave_IO_Running: Yes 负责与主机的io通信,
Slave_SQL_Running: Yes 负责自己的slave mysql进程。
这两项为NO

遇到这种问题不要惊慌
即使试了很多方法也仍然没有办法解决的时候
耐心点
仔细研究之后会发现
其实只是一条命令或者一项配置是否开启的问题

show master status
slave stop
change master to Master_Log_File='mysqlbin.000006',Master_Log_Pos=106;
slave start;

Slave_SQL_Running: No
1.程序可能在slave上进行了写操作
2.也可能是slave机器重起后,事务回滚造成的.

一般是事务回滚造成的:
解决办法:

mysql> slave stop;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> slave start;

binlog命令

bin\mysqlbinlog 查看binlog日志文件
reset master 初始化binlog日志
show master status; 查看最新的日志文件和position值
flush logs 刷新log日志文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值