美文网首页
MySQL高级第六篇(主从复制)

MySQL高级第六篇(主从复制)

作者: AD甜蜜蜜 | 来源:发表于2017-09-03 18:26 被阅读0次
  1. 复制的基本原理:slave会从master读取binlog(二进制日志文件)来进行数据同步

    • master将改变记录到二进制日志(binary log)。这些记录的过程叫做二进制日志事件,binary log events;
    • slave 将 master 的binary log events拷贝到它的中继日志(relay log)
    • slace 重做中继日志中的事件,将改变应用到自己的数据库中。MySQL复制是异步的,并且是串行化的。
      如下图:


      详情图
  2. 复制的基本原则

    • 每个slave 只有一个master
    • 每个slave 只能有一个唯一的服务器ID
    • 每个master 可以有多个salve
  3. 主从复制的常见配置

    • MySQL版本一致且后台以服务运行,主从都配置在[mysqld]节点下,都是小写,两台机器可以ping的通
    • 主数据库配置:
      • (1)server-id=1 (主服务器唯一id,可以自己设置) 必须配置
      • (2)log-bin=mysql-bin (必须启用二进制日志) 必须配置
      • (3)log-err=/MySQL安装目录/data/mysqlerr (启用错误日志) 可选配置
      • (4)basedir=/MySQL安装目录 (配置根目录) 可选配置
      • (5)tmpdir=/MySQL安装目录 (临时目录) 可选配置
      • (6)datadir=/MySQL安装目录/data (数据目录) 可选配置
      • (7)read-only=0 (读写都可以) 可选配置
      • (8)binlog-ignore-db=mysql (设置不要复制的数据库) 可选配置
      • (9)binlog-do-db=需要复制的主数据库的名字 (设置需要复制的数据库) 可选配置
    • 从数据库配置:
      • (1)server-id=2 (从服务器唯一id,可以自己设置) 必须配置
      • (2)log-bin=mysql-bin (启用二进制日志) 可选配置
  4. 配置完成以后,重启MySQL服务器,并关闭防火墙

  5. 在主机上建立账户并授权slave

    • 命令:grant replication salve on *.* to 'user1'@'192.168.10.11' identified by '123456':建立user1的用户,密码为123456,并授权复制的功能给192.168.10.11的从机服务器。
    • 执行flush privileges 命令来刷新;
    • 执行show master status 查看主机状态,可以看到file 和 position 的值(从position位置开始读取file文件进行复制)
  6. 在从机上配置需要复制的主机

    • 执行命令change master to master_host='192.168.10.1' , master_user='user1' , master_password='123456' ,master_log_file='上一步的file' , master_log_pos = 上一步的position;
    • 执行命令start slave;启动从服务器的复制功能
    • 执行 show slaver sataus 如果 slaver_io_running=yes 并且 slaver_sql_running=yes则说明配置成功,如果有一个不是yes,则配置失败
    • stop slaver;命令停止从服务器的复制功能

相关文章

网友评论

      本文标题:MySQL高级第六篇(主从复制)

      本文链接:https://www.haomeiwen.com/subject/kerjjxtx.html