MySql主从复制
好好学习,天天向上!
主从复制就是对主数据库进行增删改查的时候,同时要对从数据数据库进行一个同样的操作,以确保和主数据库的数据保持一致,即主从复制。
1.前期准备:
.首先我们需要准备两个mysql数据库,版本最好一致,这里我们使用Mysql5.6进行演示,主从信息如下
主数据库 Linux(Centos7.3)
从数据库 Linux(Centos7.3)
从数据库的复制原理:其实主从复制的本质思想就是,从数据库通过监听主数据库的一个二进制文件,当主数据库进行数据变化时,会将变化记录在这个二进制文件中,此时从数据库因为对此文件进行了监听,所以进行了同样的同步操作。
这里我们可以来了解一下这个二进制日志到底是什么东西?
(官方解释)MySQL的二进制日志(binary log)是一个二进制文件,主要用于记录修改数据或有可能引起数据变更的MySQL语句。二进制日志(binary log)中记录了对MySQL数据库执行更改的所有操作,并且记录了语句发生时间、执行时长、操作数据等其它额外信息,但是它不记录SELECT、SHOW等那些不修改数据的SQL语句。二进制日志(binary log)主要用于数据库恢复和主从复制,以及审计(audit)操作。
其实就是记录对主库的表操作
2.配置:
主服务器:
- 开启二进制日志
- 配置唯一的server-id
- 获得master二进制日志文件名及位置
从服务器:
- 配置唯一的server-id
- 读取master二进制日志
- 启用slave服务
在linux中安装mysql 进入mysql中找到my.cnf配置文件,进入添加在mysqld中添加log-bin=mysql-bin(开启二进制日志),server-id=1(设置server-id),如下图所示
然后重启[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都会跟着同步进行这些操作,此时你的主从复制就算是大功告成了。