Mysql主从复制作用原理1、在业务复杂的系统中,有这么一个情景,有一句sql语句需要锁表,导致暂时不能使用读的服务,那么就很影响运行中的业务,使用主从复制,让主库负责写,从库负责读,这样,即使主库出
- Mysql主从复制作用原理
1、在业务复杂的系统中,有这么一个情景,有一句sql语句需要锁表,导致暂时不能使用读的服务,那么就很影响运行中的业务,使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读从库也可以保证业务的正常运作。
2、做数据的热备
3、架构的扩展。业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问的频率,提高单个机器的I/O性能。
mysql主从复制是一个异步的复制过程,主库发送更新事件到从库,从库读取更新记录,并执行更新记录,使得从库的内容与主库保持一致。
主机 | IP | 主要软件 |
---|---|---|
主服务器 | 192.168.126.129 | mysql-5.7.17、 ntp 、boost_1_59_0.tar |
从服务器1 | 192.168.126.130 | mysql-5.7.17 、 ntp 、boost_1_59_0.tar |
从服务器2 | 192.168.126.131 | mysql-5.7.17 、 ntp 、boost_1_59_0.tar |
搭建Mysql主从复制
- 主服务器
建立时间同步环境
# systemctl stop firewalld.service //关闭防火墙# setenforce 0# yum -y install ntp (一般系统自带 没有的话安装)# vim /etc/ntp.conf (添加下面2行) server 127.127.126.0 //本地是时钟源// fudge 127.127.126.0 stratum 8 //设置时间层级为8(限制在15内)//# systemctl restart ntpd //重启ntp服务
- 从服务器
进行时间同步
# systemctl stop firewalld.service //关闭防火墙 # setenforce 0 # systemctl start ntpd //开启ntp服务 # yum install ntp ntpdate -y # /usr/sbin/ntpdate 192.168.126.129 //进行时间同步//
安装Mysql服务
安装详解:https://blog.51cto.com/13630803/2108180
安装后设置密码:# mysqladmin -u root password '123456'
配置主服务器
# vim /etc/my.cnf server-id = 11 log-bin=master-bin //主服务器日志文件// log-slave-updates=true //从服务器更新二进制日志//# systemctl restart mysqld # mysql -u root -p123456 //登录Mysql 给从服务器授权mysql> GRANT REPLICATION SLAVE ON *.* TO 'myslave'@'192.168.126.%' IDENTIFIED BY '123456';mysql> FLUSH PRIVILEGES;mysql>show master status;
配置从服务器(两台配置相同)
# vim /etc/my.cnf server-id = 22 //另一台从服务器也是22 relay-log=relay-log-bin //从主服务器上同步日志文件记录到本地// relay-log-index=slave-relay-bin.index //定义relay-log的位置和名称//# systemctl restart mysqld
按主服务器结果更改下面master_log_file 和master_log_pos
# mysql -u root -p123456 mysql> change master to master_host='192.168.126.129',master_user='myslave',master_password='123456',master_log_file='master-bin.000001',master_log_pos=604; mysql> start slave; //启动同步 mysql> show slave status/G; //查看状态//
- 测试一下
- 主服务器上 create database test;
- 去从服务器上 show databases;