为什么Mysql要做主从复制(读写分离)
因为对于数据库来讲,如果读和写都在同一个数据库上进行,那么数据库的负载是非常大的,会导致数据库的读写非常慢,影响用户体验。另一反面,如果主数据库宕机,可以快速切换到从数据库上,避免丢失数据。
搭建主从
本帖都是在Centos7的系统下进行的
主库ip:10.3.212.201
从库ip:10.3.212.202
环境准备:关闭防火墙、关闭selinux
systemctl stop firewalld
setenforce 0
- 首先安装好两台mysql5.7(参考我的上一篇帖子)
- 确认停掉mysql服务
- 修改mysql配置文件,打开bin-log日志:
vim /etc/my.cnf
添加下边两行在mysqld下:
server-id=2 ##这个主库要和从库区别开
log-bin=mysql-bin
-
重启mysql服务
-
登录主库,创建从库登录用户(具有复制权限):
grant replication slave on *.* to 'myslave'@'10.3.212.202' identified by 'redhat';
-
查看主库bin-log节点:
show master status;
-
登录从库,进行配置:
change master to master_host='10.3.212.201',master_user='myslave',master_password='redhat',master_log_file='mysql-bin.000001',master_log_pos=451;
这里的警告是因为使用了明文密码 -
开启主从同步:
start slave;
-
查看主从搭建状态:
show slave status\G
\G是数据库的行展示
图中标记的两个线程都为yes状态,则表明主从复制搭建成功
第一个是从库去请求同步主库的线程
第二个是从库本身执行的sql线程 -
主库创建一个测试库,然后从库验证是否进行了数据的复制:
主库:
从库:
停止主从
停掉slave:stop slave;
重置slave:reset slave;