1、理解MySQL主从复制原理。
主要基于
MySQL
二进制日志
主要包括三个线程(2个
I/O
线程,
1
个
SQL
线程)
1
、
MySQL
将数据变化记录到二进制日志中;
2
、
Slave
将
MySQL
的二进制日志拷贝到
Slave
的中继日志中;
3
、
Slave
将中继日志中的事件在做一次,将数据变化,反应到自身(
Slave
)的数据库
2、完成MySQL主从复制。
主库配置
1)、设置server-id 值并开启binlog日志
[root@localhost ~]# vi /etc/my.cnf
[mysqld]
log_bin = mysql-bin
server_id = 120
重启MySQL
[root@localhost ~]# systemctl restart mysql.server
2)、创建用户并授权
mysql> create user rep@'192.168.159.%' identified by '123456';
mysql> grant replication slave on *.* to rep@'192.168.159.%';
3)、锁表设置只读
mysql> flush tables with read lock;
4)、查看主库状态
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 617 | | | |
+------------------+----------+--------------+------------------+-------------------+
5)、备份数据库
[root@localhost ~]# mysqldump -uroot -p123456 -A -B | gzip > /tmp/db.sql.gz
6)、解锁
mysql> unlock tables;
7)、将主库的备份传到从库
[root@localhost ~]# scp /tmp/db.sql.gz 192.168.159.134:/tmp
[email protected]'s password:
db.sql.gz
从库配置
1)、设置server-id值并关闭binlog