基于MySQL 5.7.25版本主从同步实战

Goal:一个主数据库(master),一个从数据库(slave)。master加X锁,slave加X锁。

实现步骤:

     <1>准备工作:去MySQL官网 https://www.mysql.com 下载MySQL数据库解压版,我这里是Windows 10 64位操作系统,所以下载对应的MySQL解压包。

     <2>等待下载完成后,创建master和slave的解压路径,并分别将MySQL解压到对应的路径下。

master

↑ 这是master路径。

↑ 这是slave路径(创建路径时要注意不要出现字母s开头的文件夹,否则路径解析时会出问题)。

     <3>将MySQL解压到对应的文件夹下之后,再去配置环境变量。Windows 10的环境变量设置就比较简单了,直接在path路径后添加MySQL的解压路径,注意要配置到bin文件夹下,master和slave都需要配置环境变量(例:F:\MYSQL\one-slave\mysql-5.7.25-winx64\bin)。

     <4>安装好MySQL、配置完环境变量后就需要创建我们的MySQL服务并初始化了。

           4.1 创建初始化参数配置文件:分别在master和slave的根路径创建 my.ini 配置文件,因为解压版的MySQL时没有这个文件的。

                 master:

                            

                  slave:

                            

                            注意master和slave的端口号 和 server-id 并不相同。

           4.2 创建服务监听,并初始化数据库:

                      首先,以管理员身份进入DOS命令窗口,并进入 F:\MYSQL\master\mysql-5.7.25-winx64\bin 下,执行命令:

mysqld -install MASTER

 ,说明master服务监听创建成功。之后继续执行:mysqld --initialize-insecure --user=MASTER 命令进行数据库初始化,大概10S之后,初始化就会完成,并在MySQL的解压根路径下生成data文件夹和对应的配置文件。

data文件夹:

接下来,执行 net start MASTER 命令启动MASTER服务监听。

启动成功之后,执行命令 mysqladmin -u root -p password 新密码 命令设置你的数据库密码,root旧密码为空,直接敲回车就OK。

这样,master安装和初始化就完成了。slave和master的初始化步骤一样(在添加完slave服务之后,记得要去注册表中改掉slave的ImagePath,具体操作百度一下。),这里就不赘述了。

     <5>完成数据库的安装及初始化的准备工作后,就要正式开始我们的主从复制(同步)的配置了,到这里是不是非常的激动呢!!!别急,接下来咱们就开始,哈哈哈!这里独占一步以示尊敬。

     <6>首先是master的同步参数配置:

这里还可以加上以下几个参数: binlog-format = MIXED  #表示记录日志的格式,推荐使用MIXED格式的日志

                                                binlog-ignore-db = XXX #表示不需要主从复制的数据库。更多详细的参数配置去mysql的官网了解详情。

           接下来是slave的同步参数配置:

限制slave为只读模式,禁用写操作。

     <7>完成同步参数配置后登录master。

           7.1 创建同步用户

                每条SQL分别对用下面的每一步。

                 1、创建同步用户。

                 2、授予该用户文件访问权限并允许从从库IP访问主库。

                 3、授予该用户同步权限。

                 4、将权限更新到数据库中。

                 5、重启master服务监听。

                 6、登入master库,执行 SHOW MASTER STATUS; 记录日志文件版本和Position(复制标记位)信息(这个有大用处哦)。

     <8>完成master库的设置之后,登入slave从库。

                   1、关闭主从复制(默认是开启的)。

                   2、设置同步账号,以及同步日志文件名和同步开始的标记位(Position)。

                   3、开启主从同步。

                   4、执行 SHOW SLAVE STATUS; 检查主从复制状态,主从复制的线程状态:等待master的事件命令。

同步日志的文件名。

主从复制的线程状态和SQL执行线程的状态。

这些状态正常则说明我们的主从复制配置正常。

     <9>接下来就是实测了,哈哈哈哈哈哈~

     <10>登入master库,创建数据库db_master。

然后登入从库,检查从库中是否同步到我们的db_master。

啦啦啦!数据库果然同步了~开心。但是别急,那么我们新建的表和CRUD语句是否能正常同步呢?且待楼主一试。

   在主库中执行建表语句,然后去从库中复查后发现......

  从库中果然也生成了一摸一样的表!

那么CURD命令就由小伙伴们来验证吧~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值