引用: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. redhat利用yum快速搭建LAMP环境

    LAMP LAMP环境,对于PHP开发及其开源的PHP项目的部署都很关键的. LAMP的含义: L   ---Linux A  ---Apache   web M ---Mysql     datab ...

  3. MSSQL-SQL SERVER 2008安装教程

    运行setup.exe     选择“安装”菜单,点击“全新安装或向现有安装添加功能. 环境检测通过,点击“确定”: 不用修改产品密钥,点击“下一步”: 点击“下一步”: 根据您的实际情况选择响应的组 ...

  4. 【LeetCode】146. LRU Cache

    LRU Cache Design and implement a data structure for Least Recently Used (LRU) cache. It should suppo ...

  5. HttpClient 解释

    HttpClient:是一个接口 首先需要先创建一个DefaultHttpClient的实例 HttpClient httpClient=new DefaultHttpClient(); 发送GET请 ...

  6. C#异常小知识

    C#中异常捕获相信大家都很熟悉,经常使用的异常捕获有: 1. try{.....} catch (Exception ex) {throw ex;} 2. try{.....} catch (Exce ...

  7. python学习笔记—— 多进程中的 孤儿进程和僵尸进程

    1 基本概述 1.1 孤儿进程和僵尸进程 父进程创建子进程后,较为理想状态是子进程结束,父进程回收子进程并释放子进程占有的资源:而实际上,父子进程是异步过程,两者谁先结束是无顺的,一般可以通过父进程调 ...

  8. Linux中断 - 驱动申请中断API

    一.前言 本文主要的议题是作为一个普通的驱动工程师,在撰写自己负责的驱动的时候,如何向Linux Kernel中的中断子系统注册中断处理函数?为了理解注册中断的接口,必须了解一些中断线程化(threa ...

  9. Python isnumeric() 方法

    描述 Python isnumeric() 方法检测字符串是否只由数字组成.这种方法是只针对unicode对象. 注:定义一个字符串为Unicode,只需要在字符串前添加 'u' 前缀即可,具体可以查 ...

  10. Xcode6:解决_NSURLAuthenticationMethodServerTrust异常问题

    一.在使用Xcode6进行执行项目时.发现程序直接Crash了,控制台信息例如以下: dyld: Symbol not found: _NSURLAuthenticationMethodServerT ...