解决的问题
数据分布
负载均衡
备份
高可用性和容错
均衡:和nginx的均衡是不是一样的呢
实现原理:
Mysql复制基于主服务器在二进制日志中跟踪所有对数据库的更改
每一个从服务器从主服务器接收主服务器已经记录的数据。
实现的步骤:
binary log 我们叫 滨log
Master将改变记录到二进制日志(binary log)中
slave将master的binary log events 拷贝到它的中继日志(relay log)中;relay log
slave 重做中继日志的事件,将改变反映他自己的数据。
这就是我们的说的主从复制
下面来看看主从复制主要的操作步骤:
192.168.1.151 主服务器
192.168.1.152 从服务器
主服务器开启 binary log
my.cnf
log-bin=mysql-bin
如果有log-bin 这个就说明 binary log 已经开启了。
show master status;

Position 这个值是会变得
当然我们是可以 reset master 重置的
这样 File对应的值就是 mysql-bin.0001 了。
授权从服务器可以监听主服务器

授权slave这个用户通过密码123456 在192.168.1.152这台服务器上去访问这个主服务器 master
那么这个sql语句是怎么写的呢?
grant replication slave on *.* to slave@192.168.1.152 indentified by '123456'
就是在mysql数据库的用户表中添加了一个用户
从服务器开启 relay log

从服务器的配置是这样的,我们开启的是 relay log 这个配置项
按照上面的配置填写,然后 wq 保存退出即可。
定义好了以后,我们重新启动我们的mysql服务器
首先确定是否可以访问到master主服务器 ,ping 192.168.1.151 如果通就可以直接配置。
进入mysql控制终端:
change master to master_host='192.168.1.151', master_port=3306, master_user='slave', master_password='123465', master_log_file='mysql-bin.000001', master_log_pos=154;
当上面都的代码全部编写完成后,直接执行。
执行成功以后,就直接去监听了。
start slave; show slave status\G

我们直接查看 从服务器的状态,直接看 slave_IO+_Running 和 slave_SQL_Running 如果这两项都是 yes 就证明配置成功。
Mysql双主热备
解决问题: 两台数据库都是读写
实现心跳 如果其中一台服务器挂机了 那么直接写在另外一台。

应用场景:

从服务器:
1、开启 binary log /etc/my.cnf
log_slave_updates=1 这句话的意思是:从服务器监听到的数据 写入到binary log 中。
下面配图:

配置完成以后,重新启动一下mysql服务器。
然后配置一个用户可以访问到次服务器

show mastter status //查看一下

主服务器:
同样需要开启 relay-log
修改完成my.cnf 配置文件后,重新启动服务器
然后配置

show slave status\G
查看一下这个配置是否生效。
===========================================================================================================
好了,上面的主主复制已经配置完毕,那么我们再次配置一下 192.168.1.153 和 192.168.1.154 这两台服务器
主服务器=192.168.1.151
grant replication slave on *.* slave153@192.168.1.153 indentified by '123456'
打开 192.168.1.153
stop slave; change master to master_host='192.168.1.151', master_port=3306, master_user='slave153', master_password='123465', master_log_file='mysql-bin.000002', master_log_pos=1085; start slave; #查看是否已经复制成功 show slave status\G
打开主服务器 192.168.1.152 执行 这条语句
grant replication slave on *.* slave154@192.168.1.154 indentified by '123456'
打开从服务器 192.168.1.154
我们在写 change master to 这个配置的时候,先把 slave 停止掉。
stop slave;
change master to master_host='192.168.1.152', master_port=3306, master_user='slave154', master_password='123465', master_log_file='mysql-bin.000001', master_log_pos=1396;
start slave;
然后 show slave status
以上就是我们说的双主热备