引用: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. LoadRunner内部结构

    转载自:http://blog.sina.com.cn/s/blog_6da75b980100n2nv.html   英文版地址: http://www.rickyzhu.com/21_princip ...

  2. echo “新密码”|passwd --stdin 用户名

    --stdin This option is used to indicate that passwd should read the new password from standard input ...

  3. Mysql的批量导入类 MySqlBulkLoader

    在mssqlserver 中 对应的SqlBuckCopy类,进行批量数据插入. 在mysql 中,官方提供了MySqlBulkLoader 平行的工具: 不过里面有坑,具体坑是插入空值列 NULL的 ...

  4. hdoj 2199 Can you solve this equation? 【二分枚举】

    题意:给出一个数让你求出等于这个数的x 策略:如题. 由于整个式子是单调递增的.所以能够用二分. 要注意到精度. 代码: #include <stdio.h> #include <s ...

  5. JPA实体继承实体的映射策略

    注:这里所说的实体指的是@Entity注解的类 继承映射使用@Inheritance来注解.它的strategy属性的取值由枚举InheritanceType来定义(包含SINGLE_TABLE.TA ...

  6. 【mysql】Innodb三大特性之double write

    1.doublewrite buffer(mysql官方的介绍) InnoDB uses a novel file flush technique called doublewrite. Before ...

  7. invalid configuration x86_64-unknown-linux-gnu' machine x86_64-unknown' not recognized

    转载自:http://blog.csdn.net/php_boy/article/details/7382998 前两天在装机器软件的时候, 出现了下面的错误, invalid configurati ...

  8. 使用Wireshark mac下抓取分析iphone数据包 --IOS端

    mac系统版本:mac 10.10 Yosemite xcode版本:6.3.1 在追踪bug或者分析借鉴其他公司的app通讯思路时,抓包这件事是非常有必要的.下面说说Wireshark怎么截获iph ...

  9. SAP接口设计的扩展性考虑

            由于现在的系统和SAP的接口出现了几次变更,因此需要对系统进行设计改造.由于系统中和SAP交互的接口不止一处,而且也是在不同的时间段进行开发,并由不同的人员来完成的,因此我在维护升级的 ...

  10. 仿京东左侧菜单 hover效果-简易demo

    简单描述: 用到的知识点 css 中的绝对定位 以及 Js 中的事件冒泡(或事件委托) .cont{display:inline-block;width:200px;height:200px;bord ...