千家信息网

mysql基于日志的主从复制是什么

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍了mysql基于日志的主从复制是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。总有人问我 会不会读写分离,我有时真的不
千家信息网最后更新 2026年11月01日mysql基于日志的主从复制是什么

这篇文章主要介绍了mysql基于日志的主从复制是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

总有人问我 会不会读写分离,我有时真的不知道怎么回答,这么滴吧,技术本身不难你,难的是咱们能不能遇得到这么大的项目。如果是真有这么大项目,光读写分离这个事肯定不是一两个人在搞,应该是多人协作的。

所以呢!我没搞过。

但是……

不能做实验环境吗?(一个尴尬的笑容)

我从找文档资料到实验落地,一共花了3天时间(因为不是全天都在围绕着这个事情哇)。基本搞定,就是说,如果有人问我会不会,我说我已经操作过了,不是什么难事。

具体注意点:


  1. 主从之间的防火墙需要放行
  2. mysql-id 得唯一 见 my.cnf
  3. uuid 得唯一 见 auto.cnf
  4. 主服务器要授权,一般授权一个slave账号给从服务器使用

常用几个命令(针对日志的方式)


  1. 在主库上操作的有

    mysql > show master status; #查看主库状态

    mysql > grant replication slave on . to 'slave'@'%ip%' identified by 'password';# to 后面的 解释: 'slave' 代表哪个账户,@后面的是从服务器的IP by 后面的是密码;

    systemctl status firewalld # 查看防火墙状态

    firewall-cmd -list-all # 查看防火墙的端口列表

    firewall-cmd -permanent -zone=public -add-port=3306/tcp # 放行 3306 端口

    firewall-cmd -reload # 重启防火墙

    另外 iptable 的话 可以自行看看哇

  2. 在从库上操作主要有

    1. mysql> stop slave; // 停止复制
    2. mysql> reset slave; // 重置复制
    3. mysql> start slave; // 开启复制
    4. mysql> show slave status\G; # 查看状态

具体配置


  1. 环境介绍

    1. 主服务器 192.168.5.238 centos 7.4
    2. 从服务器 192.168.5.239 centos 7.4
    3. 利用日志来进行主从配置
  2. 主服务器上的配置

    1. 防火墙操作,防止后面出奇怪的问题 参考常用几个命令的防火墙操作

    2. mysql 的日志相关的配置 其他的先不用动 主要是看这段

      # aster live copy configure
      log-bin=mysql-bin //日志文件名
      binlog_format=mixed // 这个日志格式,还有几个选项,大家都选mixed 可选项statement/row/mixed,如果想深究 可以去看官方文档
      server-id = 238 //为了不重复使用 尽量采用服务器IP 的最后一位来命名
      skip_name_resolve=ON //这个直接写上就可以了,参考一下别人的文档
      expire_logs_days = 10 //设置日志保存的天数,这个吧 我觉得可以不用加,加上也无所谓,因为在测试环境,如果正式上线跑的话,就要掂量一下了
      # /etc/init.d/mysql restart // 这个不一定是这个命令 看自己是用什么方式安装的 centos 也有 systemctl restart mysql的 这个不懂可以多研究一下linux操作
      ##如果两台服务器不是复制的话,auto.cnf 的uuid应该会不一样,如果是复制的话,就该看看了,这个在mysql的安装目录的 /var、目录下如果有 就把这个文件删除或者mv 备份一下

  3. mysql配置一下复制权限

    # mysql -uroot -p "password" //登入mysql服务器、会让你输入密码
    mysql>GRANT replication slave ON . TO 'slave'@'%' IDENTIFIED BY '111111'; // 解释 replication 分配复制的权限 这个. 可以操作那个库 后面的'slave'@'%' 表示任何主机用slave都可以进行从库复制,也可以指定到IP 后面就是密码哈
    mysql> show master status;
    +------+----+-----+------+-------+
    | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +------+----+-----+------+-------+
    | mysql-bin.000010 | 2812 | | | |
    +------+----+-----+------+-------+
    1 row in set (0.00 sec)
    看到上面的这个表表示成功了

  4. 从库上的配置

    1. 修改my.cnf

      log-bin=mysql-bin //日志文件名
      binlog_format=mixed //日志格式
      server-id =239 //服务器ID 这个和主服务器一个解释,用IP的尾巴
      # expire_logs_days = 10 //这个我注释掉了,
      # early-plugin-load = "" //这个暂时没有使用,如果启用可以配置此项,主从复制这个项并不是关键项
      relay_log = mysql-relay-bin //这个是个从库的复制日志
      relay_log_index=relay_log.index //日志索引
      # /etc/init.d/mysql restart // 这个不一定是这个命令 看自己是用什么方式安装的 centos 也有 systemctl restart mysql的 这个不懂可以多研究一下linux操作

    2. 设置从库

      1. 进入从库的mysql 终端 #mysql -uroot -p //进入终端

        # mysql -uroot -p //进入终端(之所以写详细点,就是怕看到此文的人会误会操作不全)

      2. 关闭slave # 注意配置从库之前先关闭掉slave;

        mysql>stop slave; //这个是关闭从库哇,保证一把过

      3. 修改master参数

        mysql>change master to
        master_host='192.168.5.238',
        master_user='slave',
        master_password='这里填上面设置主库复制权限时的密码',
        master_log_file='mysql-bin.000010', //这里填 在主库 show master status 的文件名,位置对着抄就好了
        master_log_pos=2812; //在主库的show master status 里找

      4. 启动从库

        mysql>start slave; //启动从库

      5. 查看主从复制是否成功

        mysql> show slave status \G;

                 Slave_IO_State: Waiting for master to send event              Master_Host: 192.168.5.238              Master_User: slave              Master_Port: 3306            Connect_Retry: 60          Master_Log_File: mysql-bin.000010      Read_Master_Log_Pos: 2812           Relay_Log_File: mysql-relay-bin.000013            Relay_Log_Pos: 3025    Relay_Master_Log_File: mysql-bin.000010         Slave_IO_Running: Yes        Slave_SQL_Running: Yes

        看到 Slave_IO_Running 和 Slave_SQL_Running 值 都为 Yes 说明就成功了,如果不成,请看下面的提示信息,对着谷歌 百度 应该能找出来的

        1. 我在配置时遇到了一个问题,就是报uuid错误,原因是我的实验环境是一个虚拟机安装完mysql后复制的,所以导致mysql的uuid 相同了

          # cd /usr/local/mysql/var
          # mv auto.cnf auto.cnf.back //这个你看有没有,没有就不操作,有就这样
          # /etc/init.d/mysql restart //重启数据库
          然后执行show slave status\G;观察两个yes

        2. 至此,基于日志的主从复制就完成了

总结:


  1. 防火墙 要先看
  2. 步骤无所谓,对着搞,直到成功
  3. 细心,不能慌

感谢你能够认真阅读完这篇文章,希望小编分享mysql基于日志的主从复制是什么内容对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,遇到问题就找,详细的解决方法等着你来学习!

日志 服务器 服务 配置 主从 防火墙 防火 成功 命令 密码 就是 文件 环境 文件名 文档 方式 权限 状态 篇文章 终端 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技 深圳市人人互联网科技有限公司 互联网科技公司官网 百单互联网科技有限公司 善班互联网科技有限公司 壕鑫互联网络科技 上海亿帐通互联网科技 互联网科技大会案例 盛创互联网科技有限公司 互联网科技素材视频竖屏 中化能源互联网科技招聘 想开互联网科技公司怎么样 民营互联网公司国防科技 天津腾达互联网科技有限公司 上海钢联属于互联网科技股吗 江苏苏星互联网科技有限公司 浙南科技城互联网大厦招聘 米泉互联网科技专业怎么样 互联网时代高科技布局 广东猫王互联网科技有限公司电话 百单网互联网科技有限公司 A股互联网金融科技公司 互联网金融公司科技 电子科技大学互联网 火传媒上海互联网科技 大白互联网科技 互联网科技热点资讯 保险科技服务互联网营销体系 上海创道互联网络科技有限公司 绵阳真晨互联网科技有限公司
0