一、在mssql 里头实现同步镜像,只能主库用而镜像库不能同时用,而mysql 主从同步可以实现 数据库的读写分离,主库负责 update insert delete ,从库负责select 这样一来具有相应的优点:
         (1)    数据分布 (Data distribution )
         (2)    负载平衡(load balancing)
         (3)    备份(Backups) 
         (4)    高可用性和容错行 High availability and failover

二、mysql 数据库同步的实现原理:

  (1)    master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);
       (2)    slave将master的binary log events拷贝到它的中继日志(relay log);
        (3)    slave重做中继日志中的事件,将改变反映它自己的数据。

  

三、mysql主从同步复制的实现配置过程

1、 条件

两台服务器分别为

A:192.168.1.230 【master】

B: 192.168.1.122 【slave】

2、步骤

1)、 在masert 里 mysql数据库建立wei slave用来取数据库的账号密码

账号为: net

密码为: 123456

权限: 赋予需要同步的数据相应权限

2)、 把需要同步的数据库 从 主库拷贝到 从服务器里头建立(意思就是保证同步的数据库一致)

3)、主库上面做如下操作(window 打开 my.ini 文件 liunx 系统 my.conf 数据库配置文件)

A. 在mysqld 下添加以下代码

[mysqld]

port=3306

server-id=1       # master端ID号

log-bin=log          #日志路径及文件名

binlog-do-db=test         #需要同步的数据库

binlog-ignore-db=mysql              #不需要同步的数据库

B. 在master上位slave添加一个同步账号

grant replication slave on *.* to 'net'@'192.168.1.122' identified by '123456';

C. 重启mysql服务

运行 show master status

File  Position(同步位置)  Binlog_Do_DB(同步库)  Binlog_Ignore_DB(不需要同步的库)

log.000001  424   test          mysql

4)、从服务器上 做如下操作 slave

拷贝如下代码到 my.ini 文件 mysqld 下面

server-id=2

master-host=192.168.1.230

master-user= net

master-password= 123456

master-port= 3306

master-connect-retry=60

replicate-do-db=test     #同步的数据库

replicate-ignore-db=mysql  #被忽略的数据库

B.在mysql里头执行

stop slave

change master to

master_log_file='log.000001',

master_log_pos=424

改变和添加相应的配置项 注意这个地方就是主库的文件 和 位置

c. start slave; 开启同步 让从库去主库里头去数据

D. show slave status 查看同步配置项目状态

到此大功告成,可以修改或者插入 主库test里头的数据从库就会有相关的实时变化

四、附加 python代码简单实现读写库分离

import MySqldb

#读取数据库
def selectDb(sqlStr):
conn=MySQLdb.connect(host='192.168.1.122',user='root',passwd='',port=3306)
conn.select_db("test")
cur=conn.cursor()
cur.execute(sqlStr)
conn.commit()
return cur #执行 插入 修改 更新操作
def executeDb(sqlStr):
conn=MySQLdb.connect(host='192.168.1.230',user='root',passwd='',port=3306)
conn.select_db("test")
cur=conn.cursor()
cur.execute(sqlStr)
conn.commit()
cur.close() cur = selectDb("select * from user") executeDb("insert into user(name,content) values('user','内容') ") for r in cur.fetchall():
print r[1]

mysql 主从 同步原理及配置的更多相关文章

  1. 聊聊Mysql主从同步读写分离配置实现

    Hi,各位热爱技术的小伙伴您们好,好久没有写点东西了,今天写点关于mysql主从同步配置的操作日志同大家一起分享.最近自己在全新搭建一个mysql主从同步读写分离数据库简单集群,我讲实际操作步骤整理分 ...

  2. 高级程序员必知必会,一文详解MySQL主从同步原理,推荐收藏

    1. MySQL主从同步实现方式 MySQL主从同步是基于Bin Log实现的,而Bin Log记录的是原始SQL语句. Bin Log共有三种日志格式,可以binlog_format配置参数指定. ...

  3. MySQL主从同步原理 部署【转】

    一.主从的作用:1.可以当做一种备份方式2.用来实现读写分离,缓解一个数据库的压力二.MySQL主从备份原理master 上提供binlog ,slave 通过 I/O线程从 master拿取 bin ...

  4. mysql主从同步原理及错误解决

    mysql主从同步的原理: 1.在master上开启bin-log日志功能,记录更新.插入.删除的语句. 2.必须开启三个线程,主上开启io线程,从上开启io线程和sql线程. 3.从上io线程去连接 ...

  5. Mysql 主从同步原理简析

    在开始讲述原理的情况下,我们先来做个知识汇总,究竟什么是主从,为什么要搞主从,可以怎么实现主从,mysql主从同步的原理1.什么是主从其实主从这个概念非常简单主机就是我们平常主要用来读写的服务,我们称 ...

  6. 架构师必备:MySQL主从同步原理和应用

    日常工作中,MySQL数据库是必不可少的存储,其中读写分离基本是标配,而这背后需要MySQL开启主从同步,形成一主一从.或一主多从的架构,掌握主从同步的原理和知道如何实际应用,是一个架构师的必备技能. ...

  7. MySQL主从同步-原理&实践篇

    来源:Onegoleya 简栈文化 什么是mysql的主从复制? MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点.MySQL 默认采用异步复制方式,这样从节点 ...

  8. MySQL主从同步原理

    mysql主从复制用途 实时灾备,用于故障切换 读写分离,提供查询服务 备份,避免影响业务 主从部署必要条件 主库开启binlo日志(设置log-bin参数) 主从server-id不同 从库可以连同 ...

  9. MySQL主从同步简单介绍&配置

    介绍: 现在mysql集群基本上都是使用一主多从方式,实现读写分离(主库写.从库读).负载均衡.数据备份,以前只是使用从未配置过,今天简单配置一下! mysql主从复制是通过binary log日志实 ...

随机推荐

  1. HDU多校(Distinct Values)

    Problem Description Chiaki has an array of n positive integers. You are told some facts about the ar ...

  2. redis缓存在项目中的使用

    关于redis为什么能作为缓存这个问题我们就不说了,直接来说一下redis缓存到底如何在项目中使用吧: 1.redis缓存如何在项目中配置? 1.1redis缓存单机版和集群版配置?(redis的客户 ...

  3. distcc配置

    原理图: OS: ubuntu Server 12.04 1.安装 apt-get install distcc 2.配置 将文件/etc/default/distcc修改为如下格式 STARTDIS ...

  4. Elasticsearch6.0 IKAnalysis分词使用

    Elasticsearch 内置的分词器对中文不友好,会把中文分成单个字来进行全文检索,不能达到想要的结果,在全文检索及新词发展如此快的互联网时代,IK可以进行友好的分词及自定义分词. IK Anal ...

  5. [异常篇]001.MySQL数据库忘记root密码解决办法[转载]

    MySQL数据库忘记root密码解决办法 1.在运行输入services.msc打开服务窗体,找到MYSQL服务.右键停止将其关闭.如图: 2.在运行输入cmd打开终端. 3.找到MYSQL的安装目录 ...

  6. Java设计模式の单例模式

    -------------------------------------------------- 目录 1.定义 2.常见的集中单例实现 a.饿汉式,线程安全 但效率比较低 b.单例模式的实现:饱 ...

  7. ZooKeeper文档(二)

    ZooKeeper:因为协调的分布式系统是一个动物园 ZooKeeper对分布式应用来说是一个高性能的协调服务.它暴露通常的服务-比如命名,配置管理,同步,和组服务-用一种简单的接口,所以你不用从头开 ...

  8. HDU 5901 Count primes 大素数计数

    题意:计算1~N间素数的个数(N<=1e11) 题解:题目要求很简单,作为论文题,模板有两种 \(O(n^\frac{3}{4} )\),另一种lehmer\(O(n^\frac{2}{3})\ ...

  9. 在vsagent上运行.dll录制文件。

    https://msdn.microsoft.com/en-us/library/ms182487.aspx 1. cd C:\Program Files (x86)\Microsoft Visual ...

  10. Druid连接池及监控在spring中的配置

    Druid连接池及监控在spring配置如下: <bean id="dataSource" class="com.alibaba.druid.pool.DruidD ...