前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL主从复制实战

MySQL主从复制实战

作者头像
suveng
发布2019-09-17 10:40:50
3760
发布2019-09-17 10:40:50
举报

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/qq_37933685/article/details/80514197

个人博客:https://suveng.github.io/blog/​​​​​​​

MySQL读写分离

分布式集群带来高并发,高容量的特性,但是数据一致性就成了问题

主要解决两个问题

1. 应用层控制数据源
2. 数据源之间的数据同步

多数据源

  1. 先停止mysql服务
  2. 把MySQL server整个目录拷过来,放到其他目录,修改my.ini
  3. 去到复制的那个目录的bin下,执行mysql初始化, mysqld -initialize -insecure -user=mysql
  4. 安装服务,mysqld -install mysql3307

注意:服务的路径应该是复制的那个目录的mysqld,如果不是,可能my.ini配置问题

主从复制实践windows:

假设你什么都没装,那么先从mysql官网下载maysql server 7.7.22

我现在的时间是2018.5.30.请记住版本

安装好mysql,作为主库

如下图所示.但是数据库data文件不是在这里,

数据库的存储文件在如下图所示的路径,是隐藏文件夹下的.

这些可以从my.ini看到的配置

修改主库配置文件my.ini

主要修改log-bin这里是主库的log文件的位置.当产生主从复制,其文件就会存储在这个位置,记得如果是多文件夹的话,对应的位置必须要有这个文件夹.否则报错

binlog-do-db=project-manager这里配置的是需要主从复制的数据库,这个也是我的其中一个数据库.如下图所示.

当然也可以配置多个,也可以配置不需要主从的数据库,但是我懒,一般也是这样子配置的,所以不做多余的说明,如果想深入了解.请看这篇https://segmentfault.com/a/1190000009922696

到这里主库配置完毕!

复制主库,作为从库

把上面的文件夹复制到从库的位置,我这里选择d盘

如上图我复制了两个,可以看到我用端口命名.

接下来就是修改从库的配置.可以看到3307下面并没有my.ini配置文件,那么就需要自己创建或者去主库那里复制过来.我选择复制过来.需要修改从库的port,basedir,datadir

从英文可以知道他们代表意思,端口,基本路径,数据路径.

修改完毕后,就需要配置从库,记住server_id不能和主库的server_id重复

这里最重要的是replicate-do-db=project-manager.

那么到这里从库配置完毕

接下来开始初始化从库

用管理员打开cmd,进入从库目录的bin目录下,敲这个指令

mysqld -initialize -insecure -user=mysql

这里会生成一些文件到datadir下面的路径,如下图所示

圈出来的是生成的,其余那些是后面生成的,还没完成.

还需要吧主库的一些文件给拷过来.把下图的那些文件夹和文件都考过去把,这些文件夹都是一些数据库,每个人的数据库都不一样,只要把文件夹都复制过去就好了,肯定会提示要覆盖ibdata1文件的,直接覆盖就好.不然下面会报错

接下来敲这个安装mysql3307服务项

mysqld -install mysql3307

安装成功后,启动两个数据库服务.

可以用cmd(管理员),打如下指令

net start mysql57这里的mysql57是我主库的服务项

net start mysql3307

启动成功后

到这里从库配置王弼

配置主从库通信

这里就是最后的部分了

用Navicat打开主库,新建查询,执行 show master status

得到如下的信息,记住file 和position字段

打开从库,配置主库的信息,打开从库后,新建查询,执行下面命令

change master to master_host='127.0.0.1',master_port=3306,master_user='root',master_password='root',master_log_file='master-bin.000003',master_log_pos=154;

执行成功后,是执行成功后

再执行 start SLAVE

再执行 show slave status查看从库状态

如上图所示,哪两个字段的状态必须是yes,否则不成功,看到第一个字段,Waiting for master to send event,则表示成功

最后验证主从复制

打开其中一个表插入一条数据

提交后从库下面的表也会有插入,保持数据一致性.到这里主从复制完成了.

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年05月30日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MySQL读写分离
    • 主要解决两个问题
      • 多数据源
        • 主从复制实践windows:
        相关产品与服务
        云数据库 SQL Server
        腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档