引用:https://my.oschina.net/u/255939/blog/505598

MySQL复制就是一台MySQL服务器(slave)从另一台MySQL服务器(master)进行日志的复制然后再解析日志并应用到自身,类似Oracle中的Data Guard。

MySQL复制有那些好处:

  • 第一是解决宕机带来的数据不一致,因为MySQL复制可以实时备份数据;

  • 第二点是减轻数据库服务器的压力,多台服务器的性能一般比单台要好。但是MySQL复制不适合大数据量,大数据量推荐使用集群。

MySQL复制过程分成三步:

  • master将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件,binary log events;

  • slave将master的binary log events拷贝到它的中继日志(relay log);

  • slave重做中继日志中的事件,将改变应用到自己的数据库中。

MySQL复制是异步的且串行化的

Mysql主从复制的搭建

 环境准备

主机 win 10  ip: 10.22.75.158

从机 ubuntu 15.0.4 ip:  192.168.137.128

1.主机的配置

找到mysql的配置文件my.ini,并将下面的添加进去,[mysql]和[mysqld]是要加的

max_binlog_size表示最大的二进制文件大小,expire_logs_days 是日志的过期时间

server-id 是主机的id要求是必须唯一的

binlog-do-db,binlog-ignore-db 分别是要同步的数据库和忽略的数据库,如果不配置这两个应该是对mysql下的所有数据库进行同步,包括数据库的创建等,我这里配置的是test数据库(mysql登入 命令 mysql -u root -p 回车 然后输入密码)

[mysql]

default-character-set=utf8
[mysqld]
log-bin="C:/Program Files/MySQL/MySQL Server 5.5/binlog"
expire_logs_days=10
max_binlog_size=100M
server-id=1
binlog-do-db=test
binlog-ignore-db=mysql

配置完后可以查看下是否起效

可以看到log_bin 是on

在master上配置复制所需要的账户,%表示任何远程地址的root用户都可以连接master主机

GRANT replication slave ON *.*TO root@'%' IDENTIFIED BY 'gqb101112';

identified 是密码。

在主机创建test 数据库,一张表 gqb

主表的结构是这样的。

mysql从机的配置

1.mysql的安装

刚装完的ubuntu 先运行 apt-get update 来更新软件包列表,然后再运行命令apt-get mysql-server mysql-client 来安装完 mysql

2.配置服务id

[mysqld]
server-id=2
character_set_server=utf8
[client]
default-character-set=utf8

从机可以不配置bin-log 也可以配置,进入mysql

上面master_log_pos=4118的位置是从下面这幅图中Position字段的值

master_log_file可以在主机中通过 show master status 查看文件名。

然后开启从机的slave  运行命令行 start slave;然后通过 show slave status\G; 来查看状态

上面划线的是mysql开启的两个线程,分别来读取主机上的二进制文件和执行mysql 。接下来在主机上插入数据,然后查看从机的数据有么有更新,运行结果就是下面三张图

配置过程中遇到的问题

就是ubuntu表的字段的字符集不是utf8 导致主从复制时候出现错误,导致中断同步;

首先将 ubuntu的字符集配置成 h_CN.utf8

1,查看系统支持的字符集
 locale -a
结果:
feng@feng :~$ locale -a
C
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IN
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZW.utf8
POSIX
zh_CN.utf8
zh_HK.utf8
zh_SG.utf8
zh_TW.utf8

2,修改字符集
export.utf8

修改后,可以通过 locale 查看下当前的字符集

如何修改 字段的字符集:http://blog.csdn.net/lyjtynet/article/details/6261066

如何修改配置ubuntu mysql 的字符集:http://blog.csdn.net/huazhizui/article/details/8637002

mysql主从复制的介绍的更多相关文章

  1. [转]MySQL主从复制原理介绍

    MySQL主从复制原理介绍 一.复制的原理 MySQL 复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新.删除等等).每个从服务器从主服务器接收主服务器已经记录到其二进制日志的保存的更新,以 ...

  2. MySQL主从复制原理介绍

    1)在mysql主库上,将改变记录到二进制日志(binary log)中. 2)在mysql从库上,IO线程将mysql主库上二进制日志(binary log)复制到中继日志(replay log)中 ...

  3. MySQL主从复制介绍

    MySQL主从复制介绍 MySQL数据库的主从复制方案,和使用scp/rsync等命令进行的文件级别复制类似,都是数据的远程传输,只不过MySQL的主从复制是其自带的功能,无需借助第三方工具,而且,M ...

  4. MySQL主从复制介绍:使用场景、原理和实践

    MySQL主从复制介绍:使用场景.原理和实践 MySQL数据库的主从复制方案,和使用scp/rsync等命令进行的文件级别复制类似,都是数据的远程传输,只不过MySQL的主从复制是其自带的功能,无需借 ...

  5. MySQL高级知识- MySQL的架构介绍

    [TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...

  6. MySQL主从复制原理及配置详细过程以及主从复制集群自动化部署的实现

    一.复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重 ...

  7. MySQL主从复制

    Mysql主从复制介绍 MySQL支持单向.双向.链式级联.实时.异步复制.在复制过程中,一台服务器充当服务器(Master),而一个或多个其它的服务器充当从服务器(Slave). 复制可以是单向:M ...

  8. Mysql主从复制,读写分离(mysql-proxy),双主结构完整构建过程

    下面介绍MySQL主从复制,读写分离,双主结构完整构建过程,不涉及过多理论,只有实验和配置的过程. Mysql主从复制(转载请注明出处,博文地址:) 原理是master将改变记录到二进制日志(bina ...

  9. 分布式架构高可用架构篇_08_MyCat在MySQL主从复制基础上实现读写分离

    参考: 龙果学院http://www.roncoo.com/share.html?hamc=hLPG8QsaaWVOl2Z76wpJHp3JBbZZF%2Bywm5vEfPp9LbLkAjAnB%2B ...

随机推荐

  1. glusterFS分布式存储部署流程

    转自:http://bangbangba.blog.51cto.com/3180873/1712061 GlusterFS是一款非常易于使用的分布式文件存储系统,实现了全部标准POSIX接口,并用fu ...

  2. oracl查询锁表语句

    技能源于生活的不断实践,实践是对知识的不断扩展和总结.汇总.进而形成思想体系! --查询锁表语句 select sess.sid, sess.serial#, lo.oracle_username, ...

  3. iOS-高仿微信摇一摇动画效果加震动音效

    概述 摇一摇动画效果 (加震动音效) 详细 代码下载:http://www.demodashi.com/demo/10707.html 众所周知, 微信中的摇一摇功能: 搜索人/歌曲/电视,同样在一些 ...

  4. 不止是动态化:Weex项目和阿里无线技术开源方向

    这是开发者正在书写的峥嵘岁月.受益开源,回馈社区.阿里巴巴集团已经开源115个项目,并正式加入FSF基金会,Apache基金会,linux 基金会和Xen的顾问团队,并在云栖大会北京峰会宣布AliSQ ...

  5. 非微信内如何调起wap版微信支付

    微信支付一直没有出wap版,wap版想用微信支付,只有在微信内调用才可以.今天偶然发现,中国电信一个wap站点, 不在微信内也能调起微信支付,而且官方还提供了一个demo. WAP怎么调起客户端? 在 ...

  6. nodejs request gb2312乱码的问题

    http://www.cnblogs.com/linka/p/6658055.html https://cnodejs.org/topic/53142ef833dbcb076d007230 // np ...

  7. 多进程对 MySQL update的影响

    今天要做数据清洗的时候,要更新一个数据库字段,考虑到用多进程去更新数据库,也许程序会跑得快一些,结果开了64个进程, 结果是其他程序更新的时候,速度非常慢,最后发现的原因是,数据库中有64个SQL语句 ...

  8. redis投票计数

    <?php /** * * 缓存利用测试,这里我们获取传过来的投票数据,每次加1,如果增加到了设定值,才将投票 * 次数写回mysql,这大大减轻了与mysql链接的开销,redis的使用由此可 ...

  9. Spring mvc中DispatcherServlet详解

    简介 DispatcherServlet是前端控制器设计模式的实现,提供SpringWebMVC的集中访问点,而且负责职责的分派,而且与spring IOC容器无缝集成,从而可以获得Spring的优势 ...

  10. 外网登陆SAP的两种方式

    1.用SAP router实现从外网登录SAPserver(方式一) 自已搭建的局域网结构例如以下: SAPserverIP: 192.168.0.2, 路由器中设为DMZ区 在SAPserver上启 ...