其他分享
首页 > 其他分享> > 三十四、主从复制搭建

三十四、主从复制搭建

作者:互联网

主从复制介绍

全称MySQL Replication
1、主从复制基于binlog来实现的
2、主库发生新的操作,都会记录binlog
3、从库取得主库的binlog进行恢复
4、主从复制的过程是异步

主从复制的前提条件

1、主从数据库时间要一致,网络通畅未被防火墙拦截
2、2个或以上的数据库实例
3、server_id要不同,以便区分不同的节点
4、主库需要开启二进制日志
5、主库需要建立专用的复制用户
6、人为告诉从库一些主库信息(ip、port、user、pass、二进制日志起点)
7、后添加的从库应该从主库进行备份恢复

搭建主从复制

环境
主服务器:10.154.0.111
从服务器:10.154.0.112

1、检查主从服务器参数

mysql> select @@server_id; 
mysql> select @@log_bin; #主库开启
$ ping 10.154.0.112

2、主库建立复制用户
权限必须是replication slave

$ mysql -uroot -p -S /tmp/mysql.sock -e "grant replication slave on *.* to repl@'10.154.0.%' identified by '123'"; 
$ mysql -S /tmp/mysql.sock -e "select user,host from mysql.user";

3、主库备份恢复到从库

#主库备份,记得加--master-data=2 
$ mysqldump -uroot -p -S /tmp/mysql.sock -A \
--master-data=2 --single-transaction -R -E --triggers >/backup/full20210405.sql
$ scp /backup/full20210405.sql 10.154.0.112:/backup/full20210405.sql

#从库恢复
$ mysql -S /tmp/mysql.sock 
mysql> set sql_log_bin=0;
mysql> source /backup/full20210405.sql
mysql> set sql_log_bin=1;

4、告知从库关于主库的复制信息

#查看主库的备份,记下主库binlog文件名跟起点信息
$ vim /backup/full20210405.sql
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000041', MASTER_LOG_POS=752;
#以上语句等同于如下
$ grep "\-- CHANGE MASTER TO" /backup/full20210405.sql

#登录从库,查看帮助信息
mysql> help change master to
#改成如下
mysql> CHANGE MASTER TO 
MASTER_HOST='10.154.0.111', #主库的地址
MASTER_USER='repl',    #复制用户
MASTER_PASSWORD='123',   #复制密码
MASTER_PORT=3306,     #主库端口号
MASTER_LOG_FILE='mysql-bin.000041',  #主库binlog
MASTER_LOG_POS=752,          #binlog起点
MASTER_CONNECT_RETRY=10; #重连次数

5、从库开启复制线程(IO跟SQL线程)

mysql> start slave;

6、检查主从复制状态

#在主库执行,会发现跟从库的position是一致的
mysql> show master status \G;

#在从库执行,检查有如下两行YES即可
mysql> show slave status \G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
#以上语句等同于如下
$ mysql -S /tmp/mysql.sock -e "show slave status\G" | grep "Yes"
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

7、检查主从同步情况

#主库创建数据库
$ mysql -uroot -p -S /tmp/mysql.sock -e "create database tzwww;"

#检查从库是否同步
$ mysql -S /data/3308/mysql.sock -e "show databases;"

学习来自:2020开年标班-day13-mysql主从复制介绍及搭建

标签:主库,主从复制,sql,MASTER,三十四,mysql,从库,搭建
来源: https://www.cnblogs.com/tz90/p/14617800.html