mysql cluster 设置单向复制_mysql5.6做单向主从复制Replication

原理场景:MySQL从3.23版本开始提供复制功能。指的是将主数据库的DDL和DML操作通过二进制日志传到从服务器(也叫从库),然后在从库上对这些日志重新执行,

从而使得从库和主库的数据保持同步。

优点:如果主库出现问题,可以快速切换到从库提供服务;

可以在从库上执行查询操作,降低主库的访问压力;

可以在从库上执行备份,以免备份期间影响主库的服务;

测试环境:2台最小化安装的centos7.2

88d6055d24ca89ea3f08a85877fe5ab6.png

具体操作:

1.安装相同版本的mysql

2.主(master)服务器配置

① 在my.cnf中的[mysqld]下新增如下项目:

server_id=200                # 设置server_id,一般设置为IP;

binlog-do-db=cnblogs              # 复制过滤:需要备份的数据库,输出binlog(这里我假设值备份cnblogs这个数据库);

#binlog-do-db=db2           #如果要同步多个,另起一行,再加一条

#binlog-do-db=db3           #同上

binlog-ignore-db=mysql         # 复制过滤:不需要备份的数据库,不输出(mysql库一般不同步);

log-bin=master-bin           # 开启二进制日志功能,可以随便取,最好有含义;

binlog_cache_size=1M          # 为每个session 分配的内存,在事务过程中用来存储二进制日志的缓存;

binlog_format=mixed           # 主从复制的格式(mixed,statement,row,默认格式是statement);

expire_logs_days=7            # 二进制日志自动删除/过期的天数。默认值为0,表示不自动删除;

slave_skip_errors=1062           # 跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。

如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致;

log_bin_trust_function_creators=true    # 如果需要同步函数或者存储过程;

保存,退出;

补充说明:主从复制格式

(1) 基于语句的复制:在Master上执行的SQL语句,在Slave上执行同样的语句,MySQL默认采用基于语句的复制,效率比较高,

一旦发现没法精确复制时,会自动选着基于行的复制;

(2) 基于行的复制:把改变的内容复制到Slave,而不是把命令在Slave上执行一遍。从MySQL5.0开始支持;

(3) 混合类型的复制:默认采用基于语句的复制,一旦发现基于语句的无法精确的复制时,就会采用基于行的复制;

② 重启数据库

~]#systemctl restart mysql

③ 重新登入mysql并做相关授权

~]#mysql -uroot -p

mysql>create user mysql@'%' identified by 'mysql';

mysql>grant all  on *.* to mysql@'%';      这里可根据自己的数据库和权限进行设置;

mysql>grant replication slave, replication client on *.* to 'mysql'@'158.158.41.201' identified by 'mysql';

mysql>flush privileges;

mysql>show master status;

dadc56af1d1cf9404d00a09c53d0b898.png

注意:记住上图蓝框标出的两个数值,因为在配置slave时会用到,每次重新配置都会改变。

3.从(slave)服务器配置

① 在my.cnf中的[mysqld]下新增如下项目:

server_id=201          slave的ip做id;

binlog-do-db=cnblogs      与master相对应(换成自己的需求定义);

binlog-ignore-db=mysql     与master相对应;

#log-bin=slave1-bin       先注释掉,可以先不加;

binlog_cache_size=1M

binlog_format=mixed

expire_logs_days=7

slave_skip_errors=1062

relay_log=mysql-relay-bin    配置中继日志;

log_slave_updates=1

read_only=1

保存,退出;

补充说明:

(1)如果Slave为其它Slave的Master时,必须设置bin_log;

(2)log_slave_updates表示slave将复制事件写进自己的二进制日志;

(3)当设置log_slave_updates时,你可以让slave扮演其它slave的master;

此时,slave把SQL线程执行的事件写进行自己的二进制日志(binary log),然后,它的slave可以获取这些事件并执行它;

② 重启从服务器mysql

~]#systemctl restart mysql

③ 重新登录mysql

~]#mysql -uroot -p

mysql> change master to master_host='158.158.41.200',master_user='mysql',master_password='mysql',

master_port=3306,master_log_file='master-bin.000001',master_log_pos=708,master_connect_retry=30;

200cec4ea6cf774abf35aa8ad6177973.png

上图蓝色标志处就是之前再主上“show master status;”后得到的重要数据,写进去即可。

④ 开启主从同步

mysql>start slave;

⑤ 重看主从状态

mysql>show slave status \G

76d41da25ac1850833916bd748db5c05.png

一切正常,一切就绪。

4. 测试主从同步

在master上新增cnblogs,查看slave上是否同步新增:

635392d1714d54300c003a8e69255c44.png  

18489eef1a98a36f4794cb26b403d8b5.png

结束.

本项目是一个基于SSM(Spring+SpringMVC+MyBatis)框架和Vue.js前端技术的大学生第二课堂系统,旨在为大学生提供一个便捷、高效的学习和实践平台。项目包含了完整的数据库设计、后端Java代码实现以及前端Vue.js页面展示,适合计算机相关专业的毕设学生和需要进行项目实战练习的Java学习者。 在功能方面,系统主要实现了以下几个模块:用户管理、课程管理、活动管理、成绩管理和通知公告。用户管理模块支持学生和教师的注册、登录及权限管理;课程管理模块允许教师上传课程资料、设置课程时间,并由学生进行选课;活动管理模块提供了活动发布、报名和签到功能,鼓励学生参与课外实践活动;成绩管理模块则用于记录和查询学生的课程成绩和活动参与情况;通知公告模块则实时发布学校或班级的最新通知和公告。 技术实现上,后端采用SSM框架进行开发,Spring负责业务逻辑层,SpringMVC处理Web请求,MyBatis进行数据库操作,确保了系统的稳定性和扩展性。前端则使用Vue.js框架,结合Axios进行数据请求,实现了前后端分离,提升了用户体验和开发效率。 该项目不仅提供了完整的源代码和相关文档,还包括了详细的数据库设计文档和项目部署指南,为学习和实践提供了便利。对于基础较好的学习者,可以根据自己的需求在此基础上进行功能扩展和优化,进一步提升自己的技术水平和项目实战能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值