前言

  MySQL的主从复制是基于二进制日志机制的,需开启二进制日志功能。在具体的配置过程中,需注意主服务器与从服务器均配置唯一ID编号,且从服务器必须设置主服务器的主机名、日志文件名、文件位置等参数。整个过程可分为如下几个步骤:

(1)     主服务器:开启二进制日志功能,设置服务器ID,并重启MySQL服务;

(2)     在所有从服务器上设置服务器ID(唯一);

(3)     在主服务器上为不同的从服务器创建可读取主服务器日志文件的账户,或使用统一账户;

一、系统规划

1、主服务器

操作系统版本: RHEL 6.6 x64

数据库版本: MySQL 5.6

主机IP:192.168.152.129

主机名:master

数据库名称:

ID编号:1

2、从服务器

操作系统版本:RHEL 6.6 x64

数据库版本:MySQL 5.6(必须保证MySQL版本一致)

主机IP:192.168.152.128

主机名:slave

数据库名称:

ID编号:2

注:本文为个人学习之用,使用虚拟机模拟,可作为实施参考。

二、安装准备

1、存储

需要根据实际情况,为源数和目标端数据库分配足够的可用空间

2、网络

需要开通源端和目标端服务器的any-any的网络端口互通性

3、NTP

需要同步源和目标主机时钟同步机制,若为内网环境,推荐配置内网时钟服务器

4、其他

配置静态IP、主机名、IP与主机名绑定、防火墙(开启端口或关闭防火墙)

5、安装MySQL

为主服务器和从服务器安装MySQL,须保证两者版本一致,或者slave端版本高于master版本。

三、主服务器配置

1、准备测试数据

准备测试数据,模拟要同步对象。

mysql> create database hr;

mysql> use hr;

mysql> create table emp(id int primary key,name char(20));

mysql> insert into emp(id,name) values(1,'tom');

2、设置my.cnf参数

(1)拷贝配置文件

# cp /usr/local/mysql/my.cnf /etc/my.cnf

如有必要,应注意备份配置文件,并且在生产活动懂养成备份的意识。

(2)参数设置

以下仅列出几个必要参数:

log-bin=mysql-bin             启用二进制日志
server-id= 服务器ID,可1-之间的任意整数
binlog-ignore-db=information_schema 避免同步的数据库
binlog-ignore-db=performance_schema
binlog-ignore-db=mysql
binlog-do-db=hr 二进制需要同步的数据库名

注意:在配置文件中不可使用skip-networking参数,否则从服务器将无法连接主服务器并进行数据同步

(3)重启服务器

# service mysqld restart

3、为slave用户添加同步专用权限

(1)创建复制账户并赋权

mysql> GRANT FILE ON *.* TO 'slave_cp'@'192.168.1.2' IDENTIFIED BY 'root';

mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave_cp'@'192.168.1.2' IDENTIFIED BY 'root';

mysql> FLUSH PRIVILEGES;

(2)添加管理用户

grant all privileges on *.* to admin@'%' identified by 'root';

(3)刷新权限

flush privileges; 

四、从服务器设置

1、设置my.cnf参数

(1)备份配置文件

# cp /usr/local/mysql/my.cnf /etc/my.cnf

(2)修改参数信息

必要参数如下:

log-bin=mysql-bin

server-id=                       #从服务器ID

binlog-ignore-db=information_schema

binlog-ignore-db=performance_schema

binlog-ignore-db=mysql

replicate-do-db=hr                 #同步的数据库名

replicate-ignore-db=mysql        #屏蔽不同步的数据库

log-slave-updates

slave-skip-errors=all

slave-net-timeout=

注:MySQL 5.6之后没有master-user等参数,否则重启报错

(3)重启服务器

# service mysqld restart

五、数据库备份、同步

1、对数据库进行备份

[root@master mysql]# /usr/local/mysql/bin/mysqldump -h localhost -uroot -proot --all-databases --lock-all-tables >/tmp/dbdump.sql
[root@master mysql]# scp /tmp/dbdump.sql root@slave:/tmp/
[root@slave ~]# mysql -u root -p < /tmp/dbdump.sql

注:从服务器不需要创建要同步的数据库,备份脚本会自动创建。

2、配置从服务器连接主服务器同步

(1)、获取主服务器二进制日志信息

[root@master mysql]# mysql -uroot -p

Enter password:
mysql> flush tables with read lock; --只读锁定
mysql> show master status;
mysql> unlock tables; --解除锁定

(2)设置从服务器同步

[root@slave ~]# mysql -u root –p

mysql> stop slaves;

mysql> change master to
-> master_host='192.168.152.129',
-> master_user='slave_cp',
-> master_password='root',
-> master_log_file='mysql-bin.000003',
-> master_log_pos=195; --这里的参数取值参考查询到的master日志信息 mysql> start slave;
mysql> show slave status \G

3、同步验证

在master上添加数据,查看slave端的同步情况。

master节点:

[root@master ~]# mysql -uroot -p
mysql> create database test;
mysql> use test;
mysql> create table users(id int primary key,name char(20));
mysql> insert into users(id,name)values(1,'aa');
mysql> use hr;
mysql> show tables;
mysql> create table bb(id int,name char(20));
mysql> insert into emp(id,name)values(2,'bb');

slave节点:

[root@slave ~]# mysql -uroot -p
mysql> select * from test.users;

错误

1、启动从服务器失败

ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository

解决:

mysql> reset slave;

mysql> change master to master_host='192.168.152.129',
master_user='slave_cp',master_password='root',master_log_file='mysql-bin.000005',
master_log_pos=610;
mysql> start slave;

参考:https://zhangge.net/5091.html

参考:http://blog.csdn.net/xlgen157387/article/details/51331244/

MySQL主从复制部署的更多相关文章

  1. linux运维、架构之路-MySQL主从复制

    一.MySQL主从复制原理图  MySQL主从复制原理:实现主从复制原理是三个线程完成的,主的I/O线程,备的I/O线程与SQL线程 1.首先主库db01需要开启binlog.授权一个replicat ...

  2. 2.快速部署MySQL主从复制

      1.快速部署MySQL主从复制 [root@mysql ~]# mysql -uroot -p123456 -S /data/3307/mysql.sock -e "show slave ...

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

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

  4. mysql数据库主从复制部署笔记

    主从复制是mysql中数据库实时同步的一个常用做法了,今天我来给各位介绍一下关于mysql数据库主从复制部署一个过程,希望此例子对各位同学参考参考. 数据库主从复制原理: 数据库的主从复制就是从mas ...

  5. 002.MySQL高可用主从复制部署

    一 基础环境 主机名 系统版本 MySQL版本 主机IP master CentOS 6.8 MySQL 5.6 172.24.8.10 slave01 CentOS 6.8 MySQL 5.6 17 ...

  6. Dubbo入门到精通学习笔记(二十):MyCat在MySQL主从复制的基础上实现读写分离、MyCat 集群部署(HAProxy + MyCat)、MyCat 高可用负载均衡集群Keepalived

    文章目录 MyCat在MySQL主从复制的基础上实现读写分离 一.环境 二.依赖课程 三.MyCat 介绍 ( MyCat 官网:http://mycat.org.cn/ ) 四.MyCat 的安装 ...

  7. Linux下MySQL主从复制(Binlog)的部署过程

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

  8. MySQL高可用主从复制部署

    原文转自:https://www.cnblogs.com/itzgr/p/10233932.html作者:木二 目录 一 基础环境 二 实际部署 2.1 安装MySQL 2.2 初始化MySQL 2. ...

  9. centos7下部署mysql主从复制

    首先大致看一下这个图 环境说明: 系统:centos7 IP:master:192.168.7.235 slave:192.168.7.226 mysql版本MySQL-5.7 1.Master 下载 ...

随机推荐

  1. 记初学net-SNMP

    自从弄完那个jsp的网盘(其实还是个烂摊子),这几天一直在研究snmp. 有需求就激发动力,对,人都是被逼出来的.五一这几天,天天搁这坐着,毫无头绪. 下面切入正题. 要做一个监控园区网在线数的平台, ...

  2. UIO,大页内存,CPU亲和性,NUMA机制等

    Linux环境下的UIO(Userspace I/O) UIO 用户空间下驱动程序的支持机制.DPDK使用UIO机制使网卡驱动程序运行在用户态,并采用轮询和零拷贝方式从网卡收取报文,提高收发报文的性能 ...

  3. OpenFlow 1.3 控制器与交换机的交互,以及拓扑发现

    前言 最近纠结于控制器如何发现拓扑,于是就翻起了OpenFlow 1.3进行查看,以及一些相关协议 OF 1.3 安全通道,即交互消息 OpenFlow Switch Specification 1. ...

  4. 班级博客与coding地址

    队名 队长 成员1 成员2 成员3 成员4 成员5 团队博客地址 奥特曼小分队 李全清 胡林状 王栋 孙杏子 孙乐 刘泽良 http://www.cnblogs.com/atmxfd/ 蜗牛上天队 仝 ...

  5. BZOJ 3170 松鼠聚会(切比雪夫距离转曼哈顿距离)

    题意 有N个小松鼠,它们的家用一个点x,y表示,两个点的距离定义为:点(x,y)和它周围的8个点即上下左右四个点和对角的四个点,距离为1.现在N个松鼠要走到一个松鼠家去,求走过的最短距离. 思路 题目 ...

  6. Nginx upstream 配置

    1.轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除. 2.weight指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况.例如:u ...

  7. 【大数据】Scala学习笔记

    第 1 章 scala的概述1 1.1 学习sdala的原因 1 1.2 Scala语言诞生小故事 1 1.3 Scala 和 Java  以及 jvm 的关系分析图 2 1.4 Scala语言的特点 ...

  8. MT【201】折线计数

    甲乙两人参加竞选,结果甲得n票,乙得m票(n > m) . 则在唱票过程中,甲的累计票数始终超过乙的累计票数的概率是_____________. 答案:$\dfrac{n-m}{n+m}$

  9. 架构师成长之路1.1-系统监控工具htop

    点击返回架构师成长之路 架构师成长之路1.1-系统监控工具htop htop 是Linux系统中的一个互动的进程查看器,一个文本模式的应用程序(在控制台或者X终端中),需要ncurses. 与Linu ...

  10. 杭高OI20190125 (genies出题)

    /* 当一个人先从自己的内心开始奋斗,他就开始迈向了成功 ——genies (朝阳的二愣子) */ HGOI寒假赛第一场,欢迎来自各种学校的各式各样的巨老233333 感觉自己好渺小.还是NOIP ( ...