MySQL Replication:NySQL复制,MySQL的复制默认为异步工作模式
 
 mysql的复制功能是mysql内置的,装上它之后就具备了这个功能,而mysql复制是mysql实现大规模高性能应用的一个基本工具,是
mysql完成水平扩展的基本架构,为了能够应付更多的访问请求,通常情况下我们需要对服务器进行扩展,而扩展通常有两种方式:向上扩展和向外扩展;
向上扩展:scale on,也称为垂直扩展,一般是扩充服务器的内存或CPU颗数的这种就是向上扩展。
向外扩展:scale out,也称为水平扩展,比较一台服务器不够,再加一台服务器,再不够再加,这种情况就是向外扩展。
其实MySQL的的复制功能就是使用MySQL向外扩展的能力,也就是水平扩展的功能。

   所谓同步的复制:
先主服务器每更新一条数据先写到磁盘文件中,同时还要写一个到二进制日志文件中,从服务器就会到主服务器请求二进制信息保存在中继日志中,保存好后由本地
的SQL
thread从中继日志应用到从服务器的本地有磁盘文件中,当这个过程完成之后再由从服务器返回确认结果给主服务器,主服务器才返回结果给客户端的。
所谓异步复制:当主服务器要写数据时,先写到本地的磁盘,同时写到二进制文件日志中,写好二进制日志文件后就把结果返回给客户端,至于从服务有没有来主服务器同步二进制日志他不关心。
注意:在做复制时双方的的MySQL要一致,如果不一致,主的要低于从的。
   MySQL主从服务的工作原理图:

这里还要注意,如果从服务器不断的到主服务器来请求数据,发现这些数据已经是最新的数据了,那从服务器的I/O
thread将会转为睡眠状态,因为主服务器会通知,而I/O线程不会做轮循,从服务器的二进制日志文件通常是被关闭状态的,从服务器是不允许执行写操作
的。

下面来完成主从复制的基本操作步骤:
   1、这里我们要有两台主机、我这里使用克隆主服务器的主机当做从服务器、首先要把虚拟主机关机才可以克隆的:

克隆完之后我们就开机登录、确保主从服务器都正常运行了即可:

2、做主从复制最重要的一点就是双方的server-id不能相同;然而在主服务器上只需要三步
   1)就是改server-id
   2)启用二进制日志
   3)创建有复制权限的帐号
   # vim /etc/my.cnf

改好之后保存退出即可,再重启服务器,创建二进制目录:

   # mkdir /data/binlogs
# chown -R mysql.mysql /data/binlogs
重启主服务器的mysql服务;
# service mysqld restart 

而后连接到主服务器上授权一个有复制权限的帐号:

  # mysql -uroot -hlocalhost -p
MariaDB [hellodb]> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'repluser'@'172.16.251.156' IDENTIFIED BY 'replpass';
MariaDB [hellodb]> FLUSH PRIVILEGES;

   3、在从服务器上有以下几步
   1)改server-id
   2)启用中继日志
   3)连接主服务器
   4)启动复制线程
   配置从服务器的相关配置信息:
   # vim /etc/my.cnf

  # mkdir /data/relaylogs/
# chown -R mysql.mysql /data/relaylogs
重启mysql服务:
# service mysqld restart
再连到从服务器的mysql服务器上:
# mysql -uroot -hlocalhost -p
查看一下从服务器的中继日志是否在启动状态:
MariaDB [(none)]> SHOW GLOBAL VARIABLES LIKE '%relay%';

按照上面的步骤再连接主服务器:

# MASTER_HOST='172.16.251.244' --主服务器的IP地址
# MASTER_USER='repluser' --主服务器上授权复制的用户名
# MASTER_PASSWORD='replpass' --主服务器上授权用名的密码
# MASTER_LOG_FILE='mysql-bin.000006' --主服务器上的日志文件
# MASTER_LOG_POS= --主服务器上日志文件的位置
MariaDB [hellodb]> CHANGE MASTER TO MASTER_HOST='172.16.251.244',MASTER_USER='repluser',MASTER_PASSWORD='replpass',MASTER_LOG_FILE='master-bin.000006',MASTER_LOG_POS=; #指定日志从哪个位置开始复制

但是此时的从服务器还没有工作起来,要使从服务器工作起来还要手动启动复制线程,我们上面的步骤写得很明白:
   MariaDB [(none)]> START SLAVE;
   
   

OK、到这里主服务器算是配置完成了,仓促整理了一下,有什么不对的地方还望多多提点,在此先谢谢你的关注了!

MariaDB 主从复制的更多相关文章

  1. MariaDB主从复制的逻辑与实现

    一.关系型数据库的劣势 “关系型数据库:指采用了关系模型来组织数据的数据库,而关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织.”——Wiki 关系型数据 ...

  2. Linux-基础学习(五)-mariadb主从复制以及redis学习

    开始今日份整理 1.mariadb的主从复制 主从复制大致图示: 1.1 mysql基本命令复习 linux下的操作 .启动mysql systemctl start mariadb .linux客户 ...

  3. MariaDB主从复制,redis发布订阅,持久化,以及主从同步

      一. MariaDB主从复制 mysql基本操作 1 连接数据库 mysql -u root -p -h 127.0.0.1 mysql -u root -p -h 192.168.12.60 2 ...

  4. 【MySQL】Mariadb主从复制

    Mariadb主从复制 环境配置: Master : 172.30.200.200 Slave : 172.30.200.204 架构图,如下: Master的配置: 1.binlog配置 [root ...

  5. mysql/mariadb主从复制

    主从复制简介 MySQL数据库的主从复制方案,是其自带的功能,并且主从复制并不是复制磁盘上的数据库文件,而是通过binlog日志复制到需要同步的从服务器上. MySQL数据库支持单向.双向.链式级联, ...

  6. Mariadb主从复制

    前戏: mysql的基本命令复习 .启动mysql systemctl start mariadb .linux客户端连接自己 mysql -uroot -p -h 127.0.0.1 .远程链接my ...

  7. MySQL(mariadb)主从复制模式与复制过滤

    在前一篇文章<mysql多实例与复制应用>中只对mysql的复制做了简单的介绍,本篇内容专门介绍一下mysql的复制. MySQL复制 mysql复制是指将主数据库的DDL和DML操作通过 ...

  8. MariaDB主从复制、主主复制

    1.部署 10.0.0.21  MariaDB-21 10.0.0.22  MariaDB-22 cat /etc/yum.repos.d/mariadb.repo [mariadb] name=Ma ...

  9. MariaDB主从复制和读写分离

    一.基础环境 二.配置MariaDB服务 1.安装MariaDB # yum install -y mariadb mariadb-server # systemctl start mariadb # ...

随机推荐

  1. 使用常见的网络命令查看当前网络状态——Mac OS X篇

    转载自:http://blog.csdn.net/zkh90644/article/details/50539948 操作系统拥有一套通用的实用程序来查明本地主机的有线或者无线链路状态和IP的连接情况 ...

  2. 如何优雅地使用vim编辑器

    如何优雅地使用vim编辑器大赞..原文链接:http://jackiekuo.com/code/2014/05/07/use-vim-the-pragmatic-way/ 接上篇如何优雅地使用Vim? ...

  3. 一个设置为display:none;的div,在用.height()方法获取不到它的高,获取到的高度为0.

    <div style="width:100px;height:100px;background:red;visibility:hidden"></div>/ ...

  4. Copy List with Random Pointer——技巧

    A linked list is given such that each node contains an additional random pointer which could point t ...

  5. 洛谷P2827 蚯蚓 题解

    洛谷P2827 蚯蚓 题解 题目描述 本题中,我们将用符号 ⌊c⌋ 表示对 c 向下取整. 蛐蛐国最近蚯蚓成灾了!隔壁跳蚤国的跳蚤也拿蚯蚓们没办法,蛐蛐国王只好去请神刀手来帮他们消灭蚯蚓. 蛐蛐国里现 ...

  6. MVC – 4.mvc初体验(2)

    5.显示学员列表 效果 数据表 5.1 首先,在文件夹Models新建一个新建项(W),选择ADO.NET 实体数据模型 (SingleTest.edmx) 5.2 建一个控制器,StudentsCo ...

  7. hdu4796

    4月真是没写啥题,这题还是月初写的…… 不错的插头dp,首先由n和m的范围知肯定是轮廓线是横向划的 问题的难点在于怎么处理下面两个问题 1.怎么处理独立插头 2.怎么处理完全将W和L左右隔开 先说独立 ...

  8. MFC+WinPcap编写一个嗅探器之零(目录)

    零零散散写了三天,完成了编写嗅探器的文章,旨在让自己加深印象,是初学者少走一些弯路.因为先前未接触MFC,之后也不打算精通,完全是0基础,所以文章技术含量不高,但难点基本上都都包括了,凑合这看吧,接下 ...

  9. c# 递归异步获取本地驱动器下所有文件

    //获取所有驱动器 string[] drives = Environment.GetLogicalDrives(); foreach (string driver in drives) { Cons ...

  10. Java 性能优化手册 — 提高 Java 代码性能的各种技巧

    转载: Java 性能优化手册 - 提高 Java 代码性能的各种技巧 Java 6,7,8 中的 String.intern - 字符串池 这篇文章将要讨论 Java 6 中是如何实现 String ...