一.主从的作用:
1.可以当做一种备份方式
2.用来实现读写分离,缓解一个数据库的压力
二.MySQL主从备份原理
master 上提供binlog ,
slave 通过 I/O线程从 master拿取 binlog,并复制到slave的中继日志中
slave 通过 SQL线程从 slave的中继日志中读取binlog ,然后解析到slave中
部署主从环境:主服务器:192.168.1.110(编译好的MySQL5.1版本的数据库)
从服务器:192.168.1.120(编译好的MySQL5.1版本的数据库)
(温馨提示:主和从数据库版本必须是一样。或者主库的数据库版本必须比从库高,不然会导致很多故障的发生。)
三:生产环境应用MySQL主从同步场景:
1. 一般用主库做为提供业务用户写操作(比如:在互联网上写一条微博,这时候就会写到mysql数据库的主库中)
2. 一般用从库做为提供业务用户读操作(比如:在互联网上,我想看一条微博,这时候里面提供数据就是MySQL数据库的从库中。)
(1)在主服务器(192.168.1.110)上操作。
[root@Andy ~]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:5E:6F:A7
inet addr:192.168.1.110 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe5e:6fa7/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:141354 errors:0 dropped:0 overruns:0 frame:0
TX packets:140807 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:142083379 (135.5 MiB) TX bytes:17815696 (16.9 MiB)
Interrupt:193 Base address:0x2000
[root@Andy ~]# vi /etc/my.cnf
[mysqld]在mysqld下添加以上两行。
server-id = 1
log-bin= Andy -bin
[root@Andy ~]# /etc/init.d/mysqld restart
Shutting down MySQL[ OK ]
Starting MySQL.[ OK ]
[root@Andy ~]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.1.44 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show master status;
+--------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+--------------------+----------+--------------+------------------+
| Andy-bin.000001 | 106 | | |
+--------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
请记住:File里的Andy-bin.000001 和 Position 106 。
Mysql> grant replication slave on *.* to 'python'@'192.168.1.%' identified by '123456';
mysql> quit
Bye
在从服务器(192.168.1.120)上操作:
[root@Andy ~]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:2B:8E:D2
inet addr:192.168.1.120 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe2b:8ed2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:180290 errors:0 dropped:0 overruns:0 frame:0
TX packets:146169 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:223411069 (213.0 MiB) TX bytes:15504427 (14.7 MiB)
Interrupt:193 Base address:0x2000
[root@Andy ~]# vi /etc/my.cnf
把server-id = 1 改为:server-id = 2
然后重启Mysql服务:[root@Andy ~]# /etc/init.d/mysqld restart
Shutting down MySQL........[ OK ]
Starting MySQL.[ OK ]
[root@Andy ~]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.44 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.110', MASTER_PORT=3306, MASTER_USER='python', MASTER_PASSWORD='123456', MASTER_LOG_FILE=' Andy-bin .000001', MASTER_LOG_POS=106;
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.110
Master_User: python
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: Andy-bin.000001
Read_Master_Log_Pos: 106
Relay_Log_File: Andy-relay-bin.000002
Relay_Log_Pos: 253
Relay_Master_Log_File: Andy-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 106
Relay_Log_Space: 410
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
1 row in set (0.01 sec)
如果: Slave_IO_Running: Yes (主从I/O正确)
Slave_SQL_Running: Yes(主从进程正确)

MySQL主从同步原理 部署【转】的更多相关文章

  1. mysql 主从 同步原理及配置

    一.在mssql 里头实现同步镜像,只能主库用而镜像库不能同时用,而mysql 主从同步可以实现 数据库的读写分离,主库负责 update insert delete ,从库负责select 这样一来 ...

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

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

  3. Mysql 主从同步原理简析

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

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

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

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

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

  6. MySQL主从同步原理

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

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

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

  8. Mysql主从同步原理简介

    1.定义:当master(主)库的数据发生变化的时候,变化会实时的同步到slave(从)库. 2.好处: 1)水平扩展数据库的负载能力. 2)容错,高可用.Failover(失败切换)/High Av ...

  9. mysql 主从同步原理

    Replication 线程 Mysql的 Replication 是一个异步的复制过程,从一个 Mysql instace(我们称之为 Master)复制到另一个 Mysql instance(我们 ...

随机推荐

  1. Python学习(2)

    python基础学习(二)2.1 python定义函数用def,没有返回类型?def myabs(x) if x>0: return x python定义的函数可以多个直接一起返回,这一点和ja ...

  2. HTML中Select的使用具体解释

    <html> <head> <SCRIPT LANGUAGE="JavaScript"> <!-- //oSelect 列表的底部加入了一 ...

  3. Android 定时任务高度【schedule】与【scheduleAtFixedRate】差别

    在android中调度定时任务有两种方法 1.schedule 2.scheduleAtFixedRate 这两种方法的差别在于 首次调用时间(Date when)这个參数 <span styl ...

  4. 借助Ant工具,实现快速开发

    当一个项目大了以后,每次重新编译,打包,运行等就会变得复杂.费时.重复,在c语言中有make脚本进行这些工作的批量完成,那么在java中,我们可以使用Ant. Ant是一个构建工具,可以完成这些任务: ...

  5. [React] Creating a Stateless Functional Component

    Most of the components that you write will be stateless, meaning that they take in props and return ...

  6. Effective C# Chapter1-Language Elements

    <EffectiveC#>这本书讲了一些关于C#语言的使用技巧和经验. 该系列文章是备忘录和自己的一些见解.程序猿们最喜欢这类问题了,欢迎讨论~ 菜单 Item 1 使用属性取代公共成员变 ...

  7. apache配置directoryindex

    为了让程序自动执行目录下的某个文件,可以配置虚拟主机中的directoryindex 如: <VirtualHost *:80>    DocumentRoot "D:/var/ ...

  8. Android记录6--ViewPage+Fragment的使用例子

    Android记录6--ViewPage+Fragment的使用例子 2013年9月6日Fragment学习 Fragment这个东西,我到现在才接触到,之前没有用到过,关于Fragment这个东西在 ...

  9. redhat 5.0 python2.4升级到2.7

    )安装devtoolset yum groupinstall "Development tools" )安装编译Python需要的包包 yum install zlib-devel ...

  10. angularjs填写表单

    https://scotch.io/tutorials/handling-checkboxes-and-radio-buttons-in-angular-forms <!DOCTYPE html ...