欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySql主从复制

程序员文章站 2024-03-20 21:49:22
...

好好学习,天天向上!

 主从复制就是对主数据库进行增删改查的时候,同时要对从数据数据库进行一个同样的操作,以确保和主数据库的数据保持一致,即主从复制。

1.前期准备:

.首先我们需要准备两个mysql数据库,版本最好一致,这里我们使用Mysql5.6进行演示,主从信息如下 
主数据库 Linux(Centos7.3) 
从数据库 Linux(Centos7.3)

从数据库的复制原理:其实主从复制的本质思想就是,从数据库通过监听主数据库的一个二进制文件,当主数据库进行数据变化时,会将变化记录在这个二进制文件中,此时从数据库因为对此文件进行了监听,所以进行了同样的同步操作。

这里我们可以来了解一下这个二进制日志到底是什么东西?

(官方解释)MySQL的二进制日志(binary log)是一个二进制文件,主要用于记录修改数据或有可能引起数据变更的MySQL语句。二进制日志(binary log)中记录了对MySQL数据库执行更改的所有操作,并且记录了语句发生时间、执行时长、操作数据等其它额外信息,但是它不记录SELECT、SHOW等那些不修改数据的SQL语句。二进制日志(binary log)主要用于数据库恢复和主从复制,以及审计(audit)操作。

其实就是记录对主库的表操作

 2.配置:

主服务器:

 

  1. 开启二进制日志
  2. 配置唯一的server-id
  3. 获得master二进制日志文件名及位置
从服务器:
  1. 配置唯一的server-id
  2. 读取master二进制日志
  3. 启用slave服务

在linux中安装mysql 进入mysql中找到my.cnf配置文件,进入添加在mysqld中添加log-bin=mysql-bin(开启二进制日志),server-id=1(设置server-id),如下图所示

MySql主从复制 

然后重启[aaa@qq.com_0_2_redhat ~]# service mysqld restart 

连接mysql   

[aaa@qq.com_0_2_redhat ~]# mysql -u root -p 密码

输入mysql命令进行master状态查看(如下所示)

mysql> SHOW MASTER STATUS;

找到二进制文件名(mysql-bin.000001)和位置(347653 )

从数据库的配置:

  同样的找到my.cnf配置文件配置server-Id然后保存重启服务 ,连接mysql,

输入mysql命令进行主数据库绑定(如下图所示),MASTER_LOG_FILE为你的二进制文件名(可能不一样),MASTER_LOG_POS为你的位置(可能不一样)

mysql> CHANGE MASTER TO
MASTER_HOST='182.92.172.80',
MASTER_USER='root',
MASTER_PASSWORD='你的密码',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=347653 ;

启动slave同步进程

mysql> start slave;

查看状态(如下图所示,当Slave_IO_Running和Slave_SQL_Running都为YES的时候就表示主从同步设置成功了。)

mysql> show slave status\G

当然我们也可以通过stop slave命令来关闭slave同步或者更换master。 
最后我们在主数据库中创建一个数据库,你会发现当你在master中创建表或者是在表中插入数据时,我们的slave都会跟着同步进行这些操作,此时你的主从复制就算是大功告成了。