一 主从配置的原理
    mysql的Replication是一个异步的复制过程,从一个mysql
instance(Master)复制到另一个mysql instance(Slave),
在master与slave之间的整个复制过程主要由三个线程完成,分别为Master端得IO线程和Slave端得IO线程和Sql线程。整
个过程如下:
    1 Slave上的IO线程连接上Master,并请求从指定日志的指定位置之后的日志内容
    2 Master收到来自Slave的IO线程请求后,通过Master上的IO线程根据请求信息读取日志信息返回给Slave端IO线程。
      除了日志所包含的信息之外,还包含本次返回信息在Master端得Binary Log文件的名称以及位置
    3 Slave的IO线程接收到信息后,将接收到的日志内容依次写到Slave端得RelayLog文件末尾,并读取Master端得Binary
      Log文件名和位置记录到master-info中,以便下次的IO请求
    4 Slave的Sql线程检测到Relay Log中有新增内容后,马上解析可执行的Sql语句,并在本机上执行

二 设置过程
1 首先准备两台服务器:主服务器wwwlinuxidc.com 从服务器www.linuxidc.net

2 在主数据库服务器中为从服务器添加一个拥有访问主库的用户,其命令为:

GRANT REPLICATION SLAVE ON *.* TO ‘username’@’www.linuxidc.net’ IDENTIFIED BY 'password'

注: username是你创建的可以访问主库的用户名,IP为从机IP,password为用户登录密码
      添加后在从服务器上用 mysql -hwwwlinuxidc.com -uusername -ppassword 来测试下是否可以访问主数据库

3 修改主服务器的配置文件
   vi /etc/my.cnf
   server-id = 1  ##数据库服务器都有唯一的server-id,通常主服务器制定为1,www.linuxidc.com默认的配置文件中已经存在,特别注意从服务器配置中要将此行注释掉
   log-bin=mysql-bin ##mysql进行主从复制是通过二进制的日志文件来进行的,所以必须开启mysql的日志功能
   以上两行配置都已经存在,还需额外添加如下配置:
   log_bin = /home/mysql/mysql/log/mysql-bin.log #二进制文件存放目录,www.linuxidc.com可自行定义,但需注意目录有写权限
   read-only = 0 #主机读写都可以
   binlog-do-db = test1 #设定同步的数据库,多库可以多行设置
   binlog-do-db = test2
   binlog-ignore-db = test3 #设定不用同步的数据库,多库可以多行设置
   binlog-ingore-db = test4 17jquery.com

4 修改从服务器的配置文件
   vi /etc/my.cnf
   首先找到server-id = 1 这行,用#将这行注释掉,不然会和主机冲突,然后添加
   server-id = 2
   replicate-do-db = test1 #允许同步的数据库,多库可以多行设置
   replicate-do-db = test2
   replicate-ignore-db = test3 #不需同步的数据库,多库可以多行设置
   replicate-ignore-db = test4
   master-connect-retry=30
   master-host= wwwlinuxidc.com #主服务器地址
   master-user=username #刚刚添加访问主服务器的用户名
   master-password=password #主机密码
   master-port=3306
   read-only=1 #只允许读操作(连接用户不能有SUPER权限,否则无效)
5 重启主服务器和从服务器
  在主服务器上登录mysql 输入

show master status\G 
可查看主服务器状态
  在从服务器上登录

mysql start slave
(启动从机) 然后show slave  status \G ,如果以下两项都为yes即是从机配置成功。
     Slave_IO_Running: Yes
     Slave_SQL_Running: Yes
 
  从数据库服务器的通常操作命令有:
  start slave;  ####启动复制线程
  stop slave;   ####停止复制线程
  reset slave;  ####重置复制线程
  change master to; ###动态改变到主服务器的配置 如change master to master_user='username';

MySQL主从服务器的原理和设置的更多相关文章

  1. mysql主从服务器复制原理

    在实际企业应用环境当中,单台mysql数据库是不足以满足日后业务需求的.譬如服务器发生故障,没有备份服务器来提供服务的话,业务就得停止.介于这种情况,我们来学习一下mysql主从复制. 将Mysql的 ...

  2. 2-18,19 搭建MySQL主从服务器并并通过mysql-proxy实现读写分离

    MySQL主从服务器 实现方式: MySQL  REPLICATION Replication可以实现将数据从一台数据库服务器(master)复制到一台或多台数据库服务器(slave) 默认情况下这种 ...

  3. mysql主从服务器

    #mysql主从服务器 mysql-bin.003673 | 106 查看错误日志show variables like '%log_error%'; replicate-do-table=testm ...

  4. MYSQL 主从服务器配置工作原理

    一.        主从配置的原理: Mysql的 Replication 是一个异步的复制过程,从一个 Mysql instace(我们称之为 Master)复制到另一个 Mysql instanc ...

  5. 深入解析Mysql 主从同步延迟原理及解决方案

    MySQL的主从同步是一个很成熟的架构,优点为:①在从服务器可以执行查询工作(即我们常说的读功能),降低主服务器压力;②在从主服务器进行备份,避免备份期间影响主服务器服务;③当主服务器出现问题时,可以 ...

  6. 解读mysql主从配置及其原理分析(Master-Slave)

    在windows下配置的,后面会在Linux下配置进行测试,需要配置mysql数据库同步的朋友可以参考下. 1.在主数据库服务器为从服务器添加一个拥有权限访问主库的用户:GRANT REPLICATI ...

  7. CentOS 7.2 安装配置mysql主从服务器

    MySQL官方压缩包安装: 1:下载mysql官方版本,此处以目前最新版本5.7.14为例,下载的64位版本文件为: mysql-5.7.14-linux-glibc2.5-x86_64.tar 2: ...

  8. mysql主从备份及原理分析

    一.mysql主从备份(复制)的基本原理mysql支持单向.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.mysql复制基于主服务器在二进制日志中跟踪所有对数据库的更 ...

  9. mysql主从服务器的配置

    使用mysql主从复制的好处有: 1.采用主从服务器这种架构,稳定性得以提升.如果主服务器发生故障,我们可以使用从服务器来提供服务. 2.在主从服务器上分开处理用户的请求,可以提升数据处理效率. 3. ...

随机推荐

  1. 如何将Numpy加速700倍?用 CuPy 呀

    如何将Numpy加速700倍?用 CuPy 呀 作为 Python 语言的一个扩展程序库,Numpy 支持大量的维度数组与矩阵运算,为 Python 社区带来了很多帮助.借助于 Numpy,数据科学家 ...

  2. 关于encodeURI() 踩的坑

    情景: 列表页跳转详情页,需要把列表页的数据带到详情页直接展示,思路是在路径后面加?传参,然后再在详情页获取url的参数. 为了以防中文乱码什么的所以先试用encodeURI转码再decodeURI解 ...

  3. Jquery复习(四)之text()、html()、val()

    三个简单实用的用于 DOM 操作的 jQuery 方法: text() - 设置或返回所选元素的文本内容 html() - 设置或返回所选元素的内容(包括 HTML 标记) val() - 设置或返回 ...

  4. 084、Prometheus 到底NB在哪里?(2019-05-06 周一)

    参考https://www.cnblogs.com/CloudMan6/p/7709970.html   本节学习Prometheus的核心,多维数据模型   比如要监控容器 webapp1 的内存使 ...

  5. Servlet监听器——实现在线登录人数统计小例子

    一.概念 servlet监听器的主要目的是给web应用增加事件处理机制,以便更好的监视和控制web应用的状态变化,从而在后台调用相应处理程序. 二.监听器的类型 1.根据监听对象的类型和范围,分为3类 ...

  6. “\xef\xbb\xbf”爬坑记录

    今天早上帮同事写了脚本,大致功能:从文本中读取域名,加密存储成按照自己定义的格式.但是一个简单的代码居然出现了错误.初始的代码如下: # coding:utf-8 import hashlib imp ...

  7. juniper 命令

    show chassis hardware 查看系统硬件配置,fpc表示板卡,pic表示板卡中的槽位,xcvr表示板卡中的槽位的端口位置 show chassis envirmonent 查看系统运行 ...

  8. CodeForces - 841D Leha and another game about graph

    给出一个连通图,并给每个点赋一个d值0或1或-1,要求选出一个边的集合,使得所有的点i要么d[i] == -1,要么 dgree[i] % 2 == d[i],dgree[i]代表i结点的度数. 考虑 ...

  9. python paramiko模块:远程连接服务器

    1.  SFTP基于 用户名密码 登录服务器,实现上传下载: import paramiko transport = paramiko.Transport(()) # 生成trasport,配置主机名 ...

  10. Spring的DI和AOP

    Spring 为了降低Java开发的复杂性,Spring采取了以下4种关键策略:* 基于POJO的轻量级和最小入侵性编程:* 通过依赖注入和面向接口实现松耦合:* 基于切面和惯例进行声明式编程:* 通 ...