主服务器:CentOS6.5下MySQL5.6.30
安装请参考这里网址: https://www.linuxidc.com/Linux/2018-08/153813.htm
从服务器:Win7下5.6.17
MySQL从3.23版本开始提供复制功能,复制主要是指将主服务器的DDL和DML操作,通过二进制日志(binLog日志),传到服务的服务器上,然后在从服务器上对这些日志从新执行,从而实现从服务器与主服务器的数据同步。MySQL支持一台主服务器同时向多台从服务器进行复制,从服务器同时也可以作为其他服务器的主服务器,实现链状的复制。
优点如果主服务器出现问题,可以快速切换到从服务器提供服务。
可以在从服务器上执行查询,降低主服务器的压力
可以在从服务器上执行备份,以避免备份期间影响主服务器的性能
局限由于MySQL实现的是异步复制,所以主从服务器之间的数据存在一定差异,对实时性要求高的数据仍然需要从主服务器上获得。
前期准备1.在linux下创建账号
在win的命令提示符中输入ipconfig,查看ip
因为我的win下ip为192.168.153.1,所以,我创建将Host设置为192.168.153.%,关于原因,可参考这里
2.赋予权限
REPLICATION SLAVE权限针对所有的数据库,只能通过. ,而不能shool.*,因为REPLICATION SLAVE是复制binlog日志。
3.将主服务器中的数据,复制到从服务器,确保两者搭建主从之前,数据一致。关于这,之前写过一篇文章专门介绍,可以参考这里 配置 主服务器配置
1.开启binlog日志,并设置server_id
1.配置server_id
设置:server-id=2
2.指定主服务器配置格式如下
change master to
master_host=’master_host_name’, //从服务器的主机
master_user=’replication_user_name’,//执行复制用户名
master_password=’replication_password’,//执行复制用户密码
master_log_file=’recorded_log_file_name’,//二进制日志文件名
master_log_pos=’recorded_log_postion’;//复制开始位置
根据我的配置信息
bin-log信息
复制用户信息
我执行的配置代码如下:
change master to
master_host=’192.168.153.140’,
master_user=’lidequan’,
master_password=’lidequan’,
master_log_file=’bin-log.000003’,
master_log_pos=120;
查看从服务器是否已连接主服务器 执行start slave; 执行show processlist; 修改主服务器数据,查看同步效果
在这里修改主服务器数据,主要是执行插入,更新操作。
操作之前,数据信息如下
insert into `class` (`name`) values ('三年二班'),('三年五班'),('三年七班');
此时从服务器中也有数据了
执行更新操作
update class set `name`='三年三班' where id=3;