最全 Mysql 主从复制实战演练

下面演示的主从案例皆以mysql5.7.30版本为主,亲测有效

1)首先准备两台服务器:

主服务器:192.168.124.38

从服务器:192.168.124.39

2)在主服务器上创建我们演示的数据库

mysql -uroot -p -e"create database mycat_db"

3)将提前准备好的数据库文件导入到我们的数据库中

mysql -uroot -p mycat_db < mycat_db.sql  

4)开启我们主从的配置,找到mysql的配置文件

vim /etc/my.cnf

开启主从配置,(这里主库和从库都需要配置一下,主库:server-id=1;从库:server-id=2)

log-bin=mysql-bin
server-id=1

5)备份我们的数据库

 mysqldump --master-data=2 --single-transaction --routines --triggers --events -uroot -p mycat_db > bak_mycat_db.sql

 6)将我们的备份sql远程传到我们的从数据库节点的root目录下

scp bak_mycat_db.sql root@q92.168.124.139:/root

7)从服务器上创建我们的数据库

mysql -uroot -p -e"create database order_db"

8)导入我们之前主库备份下来的数据

mysql -uroot -p order_db < bak_mycat_db.sql

9)回到主库,我们创建一个用来主从同步复制的账号

create user 'im_repl'@'192.168.124.%' identified by '123456';

10)对我们创建的账号进行授权

grant replication slave on *.* to 'im_repl'@'192.168.124.%';

11)在从库上创建我们主从同步的链路

change master to MASTER_HOST="192.168.124.38",
MASTER_USER ="im_repl",
MASTER_PASSWORD ="123456",
MASTER_LOG_FILE ="mysql-bin.000001",
MASTER_LOG_POS =625;

我们可以使用命令在主库查看上面配置的MASTER_LOG_FILE ="mysql-bin.000001",MASTER_LOG_POS =625;的位置

show master status

12)查看我们创建的链路

 show slave status \G

13)因为我们主从库的名字现在是不一样的,所以需要添加一个链路的过滤

change replication filter replicate_rewrite_db=((mycat_db,order_db));

这样我们就可以将主库mycat_db的数据同步到从库order_db上了

再次查看我们的链路状态

 show slave status \G

14)启动我们的主从复制的从库链路

start slave;

再次查看我们的从节点

 show slave status \G

【Slave_IO_Running】没有启动成功

其实下面也提示了错误的信息

意思是我们两台主从服务器的UUIDs是相同的,出现这种情况也是因为本地在安装mysql的时候,安装好一台系统之后,直接将整个操作系统又克隆了一份,避免了第二次的安装,所以才会重复,这才导致

15)解决

既然相同那么我们找到从服务器的做一下修改就可以了

cd /var/lib/mysql

vim auto.cnf

 随意更改一下这个id

重启一下mysql

service mysqld restart 

再次查看我们主节点的 日志位置:

show master status \G

 修改我们从节点:

change master to MASTER_LOG_FILE ="mysql-bin.000004",MASTER_LOG_POS =468;

因为我们的两个库名不同,需要再次创建 一下链路过滤

change replication filter replicate_rewrite_db=((mycat_db,order_db));

 然后启动我们的slave节点

start slave;

启动成功 

 

16)校验

分别用客户端来连接两个数据库

修改主库表中的任意一条数据,从库直接刷新一下便可以看到数据已经同步过来了

 

至此我们的主从数据库的配置成功 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值