一、在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. HDU4685:Prince and Princess(二分图匹配+tarjan)

    Prince and Princess Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Othe ...

  2. ACE服务端编程1:使用VS2010编译ACE6.0及从ACE5.6升级的注意事项

    ACE是一个跨平台的用于并发通信的C++框架,项目开始时使用的是ACE 5.6发布版,目前最新的ACE版本是6.3.0. 网上一直有一种黑ACE的氛围,主要黑点在于ACE的复杂和作者的背景,结合实际应 ...

  3. 如何更有效使用 Rational AppScan 扫描大型网站,第 1 部分: 工作原理及技术分析

    Rational AppScan 工作原理 Rational AppScan(简称 AppScan)其实是一个产品家族,包括众多的应用安全扫描产品,从开发阶段的源代码扫描的 AppScan sourc ...

  4. git fatal: 拒绝合并无关的历史的错误解决

    本地初始化的项目 与 github 版本不一致, 导致无法提交 $ git pull origin master 来自 https://github.com/itaken/python-login-d ...

  5. C语言双链表遍历,插入,删除

    #include<stdio.h> #include<stdlib.h> #include <string.h> #define bzero(a, b) memse ...

  6. BIRT-商务智能报表工具开发案例指南

    BIRT 报表 脚本 开发 数据库 http://www.iteye.com/topic/1128694 打算近期出版一本全面介绍BIRT使用的书籍,能够帮助大家全面了解BIRT的方方面面,用丰富的案 ...

  7. python3 mysql 时间参数错误

    一.环境 mac OS + python3.6 + pymysql 二.执行 1.语句 select count(user_id) from chezhubangapppp.yfq_user wher ...

  8. Spring Data JPA 的使用(山东数漫江湖)

    pring data jpa介绍 什么是JPA JPA(Java Persistence API)是Sun官方提出的Java持久化规范.它为Java开发人员提供了一种对象/关联映射工具来管理Java应 ...

  9. VS开发工具 因插件问题导致 已停止工作 解决办法

    解决方案如下:No1. 开始-->所有程序-->Microsoft Visual Studio 2012-->Visual Studio Tools-->VS2012 开发人员 ...

  10. js_判断当前url是否合法http(s)

    alert(checkURL('http:555')); //false function checkURL(URL) { var str = URL, Expression = /http(s)?: ...