1、原理图
2、主从配置
演示的环境如下:
名称 | IP |
---|---|
msyql-master(主库) | 10.2.4.184 |
mysql-slave(从库) | 10.2.4.185 |
(1)、配置主库
修改/etc/my.cnf文件,在[mysqld]加入下面的内容:
# 服务的唯一编号
server-id = 1
# 开启mysql binlog功能
log-bin = mysql-bin
# binlog记录内容的方式,记录被操作的每一行
binlog_format = ROW
# 减少记录日志的内容,只记录受影响的列
binlog_row_image = minimal
# 指定需要复制的数据库名
binlog-do-db = dr_dcs_data
修改好配置文件,重启mysql服务
service mysqld restart
在mysql终端下创建从库同步数据的账号
grant replication slave on *.* to 'slave'@'10.2.4.185' identified by 'zxcvbnm,./';
flush privileges;
查看主库状态,mysql的终端执行:
show slave status\G;
返回信息为:
(1)、配置从库
修改/etc/my.cnf文件,在[mysqld]加入下面的内容:
# 服务的唯一编号
server-id = 2
# 开启mysql binlog功能
log-bin = mysql-bin
# binlog记录内容的方式,记录被操作的每一行
binlog_format = ROW
# 减少记录日志的内容,只记录受影响的列
binlog_row_image = minimal
# 指定需要复制的数据库名为dr_dcs_data
replicate-do-db = dr_dcs_data
修改好配置文件,重启mysql服务
service mysqld restart
执行同步命令
mysql的终端执行:
# 设置主服务器ip,同步账号密码,同步位置
mysql> change master to
-> master_host='10.2.4.184',
-> master_user='slave',
-> master_password='zxcvbnm,./',
-> master_log_file='mysql-bin.000001',
-> master_log_pos=4845;
# 开启同步功能
mysql> start slave;
查看从库的状态
mysql的终端执行:
show slave status\G;
返回信息为:
注意:Slave_IO_Running和Slave_SQL_Running的状态都为Yes时,说明从库配置成功。
3、测试
(1)、在主库上创建dr_dcs_data库,即:
create schema dr_dcs_data
(2)、在主库上的dr_dcs_data里面创建表,请参考建表脚本
-- ----------------------------
-- oss下载记录表
-- Table structure for `t_oss_dl_record`
-- ----------------------------
DROP TABLE IF EXISTS `t_oss_dl_record`;
CREATE TABLE `t_oss_dl_record` (
`id` int NOT NULL AUTO_INCREMENT,
`ossurl` varchar(256) NOT NULL,
`create_time` datetime NOT NULL,
`update_time` datetime NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `ossurl` (`ossurl`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of t_oss_dl_record
-- ----------------------------
(3)、在主库上往comm_config表中插入一条记录,即:
insert into t_oss_dl_record(ossurl, create_time, update_time)values('test/1.db3', now(), now());
(4)、在从库上查看模式,即:
show schemas;
结果为:
说明dr_dcs_data模式同步到从库了
5)、在从库上查看dr_dcs_data模式下的表及数据,即:
use dr_dcs_data;
show tables;
结果为:
说明表也同步好了,再查看数据,即:
select * from t_oss_dl_record;
结果为:
大功告成。