一:主从复制
一:介绍
主从复制就是从库不断向主库要数据,来更新自身的数据库以便自身的数据库数据和主库相同。基于二进制日志完成的.
作用:
1、做数据的热备,作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据丢失。
2、架构的扩展。业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问的频率,提高单个机器的I/O性能。
3、读写分离,使数据库能支撑更大的并发。在报表中尤其重要。由于部分报表sql语句非常的慢,导致锁表,影响前台服务。如果前台使用master,报表使用slave,那么报表sql将不会造成前台锁,保证了前台速度。

简单流程介绍:从库读取master.info 中最后一个二进制日志(例mysql-bin.000012)序号和主库连接信息去连接主库(构建的是长链接,会一直问主库要数据),主库通过show master status查看当前最新的二进制日志,假设是mysql-bin.000020,那么主库就会将12-20之间的二进制日志都通过dump线程发送给从库,然后从库进行一系列的更新。
简单搭建一个主从:
构建如下一个主从
Master slave
3307---->3308
1. 3307中创建复制用户
主库开启二进制日志
vim /data/3307/my.cnf
log_bin=/data/3307/mysql-bin
[root@standby 3307]# systemctl restart mysqld3307
[root@standby backup]# mysql -S /data/3307/mysql.sock
grant replication slave on *.* to repl@'10.0.0.%' identified by '123';
mysql> show master status
-> ;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 154 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
mysql>
2.3308节点开启主从复制功能
[root@standby 3307]# mysql -S /data/3308/mysql.sock
# 配置连接主库的用户信息,以及最新的二进制文件和Position
mysql> CHANGE MASTER TO
MASTER_HOST='10.0.0.200',
MASTER_USER='repl',
MASTER_PASSWORD='123',
MASTER_PORT=3307,
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=154;
# 开启主从
mysql> start slave;
# 查看开启的主从相关信息
mysql> show slave status\G
出现以下两个YES代表成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
来源:https://www.cnblogs.com/yeyangsen/p/10424188.html