MySql主从复制(博主已踩过所有坑...)

在学习之前,我们首先要学会在Linux系统安装MySQL,还没安装成功的同学可以点连接进去学习,纯干货哦!——>Linux安装MySQL5.7——避开所有坑!

一、简介

( 注意:一个主库可以有多个从库)

二、了解Mysql主从复制的三个关键步骤

        1、master将改变  记录到二进制日志(binary log)

        2、slave 将 master 的  binary log  拷贝到它的中继日志(relay log)

        3、slave重做中继日志中的事件,将改变应用到自己的数据库中

 三、实现MySql主从复制

提前准备好两台服务器,分别安装MySql并启动成功

  • 主库Master
  • 从库Slave

1、进入其中一台服务器中的MySQL,将此库作为Master主库来配置,修改MySQL的配置问文件

     增加两行设置,开启MySQL的二进制日志功能,设置服务器的唯一标识(前面也提到过,一个主库可能对应多个从库,为了区分开来,把每个从库的id设置唯一)。保存并退出。

 

 2、重启数据库

3、先刷新一下权限表。把在所有数据库的所有表的所有权限赋值给位于所有IP地址的root用户。

mysql> flush privileges;

4、登录你的作为主库使用的Linux中的MySQL后:输入下面命令:

        MySQL8之前的数据库版本使用这个命令

mysql> grant replication slave on*.*to'user1'@'%'identified by 'user1@123456';

        MySQL8及之后的数据库版本使用这两个命令

mysql> create user user1 identified with 'mysql_native_password' by 'user1@123456';
mysql> grant replication slave on*.*to user1;

(上面的SQL用于创建一个用户user1,密码为user1@123456,并给user1用户授予replication slave权限。常用于建立复制时所需要用到的用户权限,也就是slave必须被master授权,具有该权限的用户才能通过该用户复制。说白了user1就是个工具人,用来提供建立主从复制的权限)

5、执行下面SQL,记录下结果中的File和Position的值

//查看主库的状态
show master status

 注:上面的操作执行完毕后就不在主库中执行其他操作了,因为我们执行其他操作的时候,结果中的File和Position的值会变化,现在从库的这个文件名和position在从库中会使用到。

至此,主库Master已经设置好了,下面我们来设置从库Slave

---------------------------------------------------------------------------------------------------------------------------------

6、配置作为从库的服务器中的 my.cnf文件,加入服务器唯一ID

server-id=101 #服务器唯一id

7、重启MySQL服务器,让配置文件生效

service mysql restart

8、登录MySQL数据库,执行下面的SQL

mysql> change master to master_host='192.168.80.100',master_user='user1',master_password='user1@123456',master_log_file='mysql-bin.000010',master_log_pos=154;

#启动slave线程(底层就是一个IO_THREAD)
mysql> start slave

  简单说一下这句SQL:

 (这一步报错的同学可以先尝试stop slave 这个命令,关闭此线程再执行)

 9、执行完之后,所有配置均已完成,但是为了保险起见,我们在从库上面执行一下这句SQL

mysql> show slave status\G;

 重点看一下圈出来的三条,若跟上图一样的话,说明你已成功开启两库的主从复制!

(若你的结果是下面的,不要灰心,说明你的3306端口处于关闭状态,往下看步骤,打开就ok了)

 打开3306端口的步骤:

 主库也要去开启一下3306端口,步骤同上,第六步输入的SQL为:

show master status;

最后再从步骤8往下进行就可以了,注意主库执行完上面的SQL之后,返回的结果要在步骤8中用到哦!

最终我们完成主从库配置之后就可以在Navicat上面连接到两个主从库,在主库中发生任意增删改,从库中也会做相应的变化,此时我们就真正完成了数据库的主从复制!

呕心沥血干了两天,踩过N多个坑最终完成了这篇文章和一些踩坑的文章,您要觉得这篇文章写的还不错的话,点个赞呗!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值