mysql的主从同步

本文详细介绍了如何配置MySQL的主从同步,包括环境搭建、注意事项、配置步骤等关键信息。适用于希望实现数据高可用性和负载均衡的数据库管理员。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mysql的主从同步

前言

在配置mysql的主从同步之前,你必须确定两台mysql的版本一定要一致。

下面是我搭建的运行环境:

  1. mysql版本:mysql-5.6.26 (https://download.youkuaiyun.com/download/qq_31403321/10330047)
  2. 操作系统:Centos 6.6
  3. 虚拟机:VMware Workstation 14 Pro 14.1.1 build-7528167

开始

首先先准备两台数据库服务器,我使用的是虚拟机做实验的。

这2台虚拟机,分别的数据版本一定是要一致的,也可以不一致,但是觉得不能比Master数据库版本低,毕竟官网推荐要一致,否则会出现某些问题。

不知道搭建数据库的可以看我的另外一篇博客:https://blog.youkuaiyun.com/qq_31403321/article/details/79832292

主从配置的注意点

  • 主从服务器操作系统版本和位数一致
  • Master 和 Slave 数据库的版本要一致
  • Master 和 Slave 数据库中的数据要一致
  • Master 开启二进制日志,Master 和 Slave 的 server_id 在局域网内必须唯一

来源于网络

配置Master数据库

修改数据库配置

在主数据库中输入命令:vi /etc/my.cnf,来编辑数据库配置

在数据配置中,加入以下配置项:

## 设置 server_id,一般设置为 IP
server_id=129
#不需要备份的数据库,不输出(mysql 库一般不同步)
binlog-ignore-db=mysql
#开启二进制日志功能,可以随便取,最好有含义
log-bin=edu-mysql-bin
#为每个 session 分配的内存,在事务过程中用来存储二进制日志的缓存
binlog_cache_size=1M
#主从复制的格式(mixed,statement,row,默认格式是 statement)
binlog_format=mixed
#二进制日志自动删除/过期的天数。默认值为 0,表示不自动删除。
expire_logs_days=7
#跳过主从复制中遇到的所有错误或指定类型的错误,避免 slave 端复制中断。
## 如:1062 错误是指一些主键重复,1032 错误是因为主从数据库数据不一致
slave_skip_errors=1062

重启mysql服务器:service mysql restart

为从机配置用户

竟然要关联到数据同步,那么肯定是需要数据库的账号和密码的,我们进入数据库中,配置下从机的账号和密码吧

1.创建数据同步用户,并授予相应的权限

 grant replication slave, replication client on *.* to '账号'@'192.168.239.130' identified by
'密码';

账号@后面的是从机的地址,表示这个账号只能在这个ip中使用

2.刷新授权表信息

 flush privileges;

配置Slave数据库

修改mysql配置

/etc/my.inf修改改文件,在 [mysqld] 中增加以下配置项:

server_id=130
binlog-ignore-db=mysql
log-bin=edu-mysql-slave1-bin
binlog_cache_size = 1M
binlog_format=mixed
expire_logs_days=7
slave_skip_errors=1062
relay_log=edu-mysql-relay-bin
log_slave_updates=1
read_only=1

具体的参数,可以百度。配置完成后也要重启mysql服务器:service mysql restart

配置mysql数据库

1.切换到主数据库服务器中,并进入数据库,查询以下语句:show master status;

记住 FilePosition字段中的值

2.切换到从服务器中的数据库。执行下面的sql语句:

change master to master_host='主数据库的ip', master_user='你在主服务器上配置的账号',
master_password='你在主服务器上配置的密码', master_port=3306, master_log_file='刚刚File字段的值',
master_log_pos=刚刚Position字段的值, master_connect_retry=30;

启动同步

执行上面的语句后,在执行start slave,即可。

怎么查看是否执行成功?

执行start slave后,在执行show slave status\G;,如果和下图一样,有2个yes,即成功,少一个都不行。

如果有两个yes,那么恭喜你同步已经完成了。

温馨提示

从数据库只有读的权限,并没有插入数据的权限,如果需要插入数据请在主数据中插入,最后从数据库会自动同步过来。

常用的命令

关于数据库的:

  • 重启服务:service mysql restart

关于同步的:

  • 开启同步:start slave
  • 关闭同步:stop slave
  • 重置同步:reset slave
基于Spring Boot搭建的一个多功能在线学习系统的实现细节。系统分为管理员和用户两个主要模块。管理员负责视频、文件和文章资料的管理以及系统运营维护;用户则可以进行视频播放、资料下载、参与学习论坛并享受个性化学习服务。文中重点探讨了文件下载的安全性和性能优化(如使用Resource对象避免内存溢出),积分排行榜的高效实现(采用Redis Sorted Set结构),敏感词过滤机制(利用DFA算法构建内存过滤树)以及视频播放的浏览器兼容性解决方案(通过FFmpeg调整MOOV原子位置)。此外,还提到了权限管理方面自定义动态加载器的应用,提高了系统的灵活性和易用性。 适合人群:对Spring Boot有一定了解,希望深入理解其实际应用的技术人员,尤其是从事在线教育平台开发的相关从业者。 使用场景及目标:适用于需要快速搭建稳定高效的在线学习平台的企业或团队。目标在于提供一套完整的解决方案,涵盖从资源管理到用户体验优化等多个方面,帮助开发者更好地理解和掌握Spring Boot框架的实际运用技巧。 其他说明:文中不仅提供了具体的代码示例和技术思路,还分享了许多实践经验教训,对于提高项目质量有着重要的指导意义。同时强调了安全性、性能优化等方面的重要性,确保系统能够应对大规模用户的并发访问需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值