MySQL数据库主从复制实践
MySQL 主从(MySQL Replication),主要用于 MySQL 的实时备份、高可用HA、读写分离。在配置主从复制之前需要先准备 2 台 MySQL 服务器。
一、MySQL主从原理
1. 每个从仅可以设置一个主。
2. 主在执行 SQL 之后,记录二进制 LOG 文件(bin-log)。
3. 从连接主,并从主获取 binlog,存于本地 relay-log,并从上次记住的位置起执行 SQL,一旦遇到错误则停止同步。
二、Replication原理推论
1. 主从间的数据库不是实时同步,就算网络连接正常,也存在瞬间,主从数据不一致。
2. 如果主从的网络断开,从会在网络正常后,批量同步。
3. 如果对从进行修改数据,很可能从在执行主的bin-log出错而停止同步,一般不会修改从的数据。
4. 一个衍生的配置是双主,互为主从配置,只要双方的修改不冲突,可以工作良好。
5. 如果需要多主的话,可以用环形配置,这样任意一个节点的修改都可以同步到所有节点。
6. 可以应用在读写分离的场景中,用以降低单台 MySQL 服务器的 I/O。
7. 可以实现 MySQL 服务的 HA 集群。
8. 可以是一主多从,也可以是相互主从(主主)。
三、实验环境
- 操作系统:CentOS 6.8_x64
- Mysql版本:5.1.73(主从版本要一致)
- Mysql安装:yum安装的方式
- 主 IP 地址:192.168.0.8(master)
- 从 IP 地址:192.168.0.18(slave)
四、主从的基本配置
1、对master的设置
修改 master 数据库的配置文件,vim /etc/my.cnf
[mysqld]
... ... ... ...
log-bin=mysql-bin # 二进制日志名称,开启bin-log
server-id=8 # 为服务器设置一个独一无二的id,这里用IP的最后一位。
重启 master 数据库服务:
service mysqld restart
2、对slave的设置
对于 slave 的设置,不需要开启二进制日志,仅需要设置以下 server-id 即可。
server-id=
重启从服务区器。
五、创建主从复制账号
为了让 slave 能够通过 master 来获取二进制日志,需要专门给 slave 创建一个用户 repl,在主上操作。
mysql> grant replication slave on *.* to 'repl'@'192.168.0.18' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
六、查看主服务器BIN日志的信息
执行完之后记录下这两值,然后在配置完从服务器之前不要对主服务器进行任何操作,因为每次操作数据库时这两值会发生改变。
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 259 | | |
+------------------+----------+--------------+------------------+
七、设置从服务器并启用slave
从上执行如下代码:
mysql> change master to
-> master_host="192.168.0.8",
-> master_user="repl",
-> master_password="123456",
-> master_log_file="mysql-bin.000001",
-> master_log_pos=248;
在从服务器配置完成,启动从服务器:
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
查看主从设置是否成功:
mysql> show slave status\G;
... ... ... ...
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
上面两项均为yes,说明配置成功。
八、测试主从
在主节点上创建一个数据库test或一张表table,然后在从节点上查看是否有test数据库或table表的创建。
本文转载自:http://www.cnblogs.com/liwei0526vip/p/6412493.html
MySQL数据库主从复制实践的更多相关文章
- mysql数据库主从复制部署笔记
主从复制是mysql中数据库实时同步的一个常用做法了,今天我来给各位介绍一下关于mysql数据库主从复制部署一个过程,希望此例子对各位同学参考参考. 数据库主从复制原理: 数据库的主从复制就是从mas ...
- Mysql数据库主从复制搭建
Mysql数据库主从复制原理: 主库开启bin-log日志,同时生成IO线程.IO线程负责将用户写入数据库的sql语句记录在二进制日志bin-log,该记录过程可并发进行:生成标识号 server i ...
- MySQL 数据库主从复制架构
前文<MySQL 数据库事务与复制>分析了 MySQL 复制过程中如何保证 binlog 和事务数据之间的一致性,本文进一步分析引入从库后需要保证主从的数据一致性需要考虑哪些方面. 原生复 ...
- 怎样解决MySQL数据库主从复制延迟的问题---流行网站的解决办法(转载)
像Facebook.开心001.人人网.优酷.豆瓣.淘宝等高流量.高并发的网站,单点数据库很难支撑得住,WEB2.0类型的网站中使用MySQL的 居多,要么用MySQL自带的MySQL NDB Clu ...
- MySQL数据库主从复制
一.MySQ主从复制(主库写入数据,从库读取数据) MySql官方下载地址:http://dev.mysql.com/downloads/mysql/ MySql常用命令: 设置密码 UPDATE U ...
- 怎样解决MySQL数据库主从复制延迟的问题
像Facebook.开心001.人人网.优酷.豆瓣.淘宝等高流量.高并发的网站,单点数据库很难支撑得住,WEB2.0类型的网站中使用MySQL的居多,要么用MySQL自带的MySQL NDB Clus ...
- mysql数据库主从复制教程
mysql主从复制教程 架构规划: 192.168.201.150 master 主节点 192.168.201.154 slave 从节点 1. 修改mysql的配置文件(主节点,从节点都要修改) ...
- MySQL学习笔记-MySQL数据库优化实践[转]
最近一段时间,我们整理了一些关于Percona,Linux,Flashcache,硬件设备的优化经验,分享给大家: 硬件 1.开启BBWC RAID卡都有写cache(Battery Backed W ...
- MySql数据库 主从复制/共享 报错
从 获取不到 共享主的数据, 错误信息: Waiting for master to send event 解决方案: // 1. 从V表获取PrNo的数据 select * from Vendor_ ...
随机推荐
- 201521123096《Java程序设计》第十二周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象(属性:int id, String name,int age,doubl ...
- Mysql双机热备配置(超详细多图版)
一.双击热备介绍 1.基本概念 双机热备特指基于高可用系统中的两台服务器的热备(或高可用),双机高可用按工作中的切换方式分为:主-备方式(Active-Standby方式)和双主机方式(Active- ...
- quartz定时格式配置以及JS验证
一个Cron-表达式是一个由六至七个字段组成由空格分隔的字符串,其中6个字段是必须的而一个是可选的,如下: ---------------------------------------------- ...
- 手機Web頁面信息
手機瀏覽器的寬度為980px: 使用980px寫頁面時,若是遇到字體變大情況,是因為block或者inline-block沒有設置寬高.設置即顯示正常. 980px設計,禁止手機頁面縮放: <m ...
- React的组件用法
React.createClass() 中文翻译 https://discountry.github.io/react/3.4K ( https://doc.react-china.org868 ) ...
- Deep learning:一(基础知识_1)
本文纯转载: 主要是想系统的跟tornadomeet的顺序走一遍deeplearning; 前言: 最近打算稍微系统的学习下deep learing的一些理论知识,打算采用Andrew Ng的网页教程 ...
- 学习如何看懂SQL Server执行计划(三)——连接查询篇
三.连接查询部分 --------------------嵌套循环-------------------- /* UserInfo表数据少.Coupon表数据多嵌套循环可以理解为就是两层For循环,外 ...
- AJAX学习前奏----JS基础加强
AJAX学习前奏----JS基础加强 知识概要: 1.js类&属性&方法的定义 2.静态属性与方法 3.构造方法 4.原型的使用 5.Object对象直接加属性和方法 6.JSO ...
- Vue实现商城里面多个商品计算,全选,删除
<!--包含 全选/不全选 批量删除 全部金额计算 数量加减--> 简陋的CSS代码 .main{ width: 100%;}.title{ width: 100%; height: 40 ...
- Jquery 使用Ajax获取后台返回的Json数据后,页面处理
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...