一 基础环境

主机名
系统版本
MySQL版本
主机IP
master
CentOS 6.8
MySQL 5.6
172.24.8.10
slave01
CentOS 6.8
MySQL 5.6
172.24.8.11

二 实际部署

2.1 安装MySQL

  1 [root@Master ~]# yum list installed | grep mysql	#查看是否存在其他MySQL组件
2 [root@Master ~]# yum -y remove mysql-libs.x86_64 #为避免冲突引发报错,卸载已存在的组件
3 [root@Master ~]# wget http://repo.mysql.com/mysql-community-release-el6-7.noarch.rpm
4 [root@Master ~]# rpm -ivh mysql-community-release-el6-7.noarch.rpm
5 [root@Master ~]# yum install mysql-community-server -y
6 [root@Master ~]# chkconfig --list | grep mysqld #查看MySQL是否加入启动项
7 [root@Master ~]# chkconfig mysqld on
 

2.2 初始化MySQL

  1 [root@Master ~]# service mysqld start
2 [root@Master ~]# mysql_secure_installation
3 [root@Master ~]# service iptables stop
4 [root@Master ~]# chkconfig iptables off
5 [root@Master ~]# vi /etc/sysconfig/selinux
6 SELINUX=disabled
 
注意:以上操作在Slave主机上也需要执行。

2.3 master my.cf配置

  1 [root@Master ~]# vi /etc/my.cnf
2 [mysqld]
3 ……
4 server-id=1 #设置主服务器master的id
5 log-bin=mysql-bin #配置二进制变更日志命名格式
 
注意:
master开启二进制日志后默认记录所有库所有表的操作,可以通过配置来指定只记录指定的数据库甚至指定的表的操作,具体在mysql配置文件的[mysqld]可添加修改如下选项:
  1 # 不同步哪些数据库
2 binlog-ignore-db = mysql
3 binlog-ignore-db = test
4 binlog-ignore-db = information_schema
5 # 只同步哪些数据库,除此之外,其他不同步
6 binlog-do-db = mysqltest
 

2.4 创建账号

  1 [root@Master ~]# mysql -uroot -p
2 Enter password:
3 mysql> grant replication slave on *.* to 'repl_user'@'172.24.8.11' identified by 'x12345678';
4 mysql> flush privileges;
5 [root@Master ~]# service mysqld restart
6 [root@Master ~]# mysql -uroot -p
7 Enter password:
8 mysql> show master status;
 
file:mysql-bin.000001
position:120

2.5 slave my.cf配置

  1 [root@Master ~]# vi /etc/my.cnf
2 [mysqld]
3 server-id=2 #设置从服务器slave的id
4 log-bin=mysql-bin #如果此slave是其他slave的master,则此项也必须开启
5 relay_log=mysql-relay-bin #配置二进制relay日志命名格式
6 log_slave_updates=1 #表示slave将复制事件写进自己的二进制日志
7 read_only=1
 

2.6 启动slave

  1 [root@Slave01 ~]# service mysqld restart
2 [root@Slave01 ~]# mysql -uroot -p
3 Enter password:
4 mysql> change master to master_host='172.24.8.10',
5 -> master_user='repl_user',
6 -> master_password='x12345678',
7 -> master_log_file='mysql-bin.000001',
8 -> master_log_pos=120;
9 mysql> show slave status\G #查看slave状态
10 ……
11 Slave_IO_State:
12 Master_Host: 172.24.8.10
13 Master_User: repl_user
14 Master_Port: 3306
15 Connect_Retry: 60
16 Master_Log_File: mysql-bin.000001
17 Read_Master_Log_Pos: 120
18 Relay_Log_File: =mysql-relay-bin.000001
19 Relay_Log_Pos: 4
20 Relay_Master_Log_File: mysql-bin.000001
21 Slave_IO_Running: No
22 Slave_SQL_Running: No
23 ……
24 Exec_Master_Log_Pos: 120
25 Relay_Log_Space: 120
26 ……
27 Seconds_Behind_Master: NULL
28 Master_SSL_Verify_Server_Cert: No
29 Master_Info_File: /var/lib/mysql/master.info
30 SQL_Delay: 0
31 SQL_Remaining_Delay: NULL
32 Slave_SQL_Running_State:
33 Master_Retry_Count: 86400
34 ……
 
提示:
Slave_IO_State, Slave_IO_Running, 和Slave_SQL_Running是No,表明slave还没有开始复制过程。

2.7 手动同步

如果Master已经存在数据,则在开启主备复制之前,需要将Master和Slave手动同步一次(/var/lib/mysql整个目录打包tar.gz),具体方法参考《004.MySQL主库手动复制至从库》。
注意:本实验都是重新安装的MySQL,可直接启动同步。

三 启动主从

3.1 Slave启动主从服务

  1 [root@Slave01 ~]# service mysqld restart
2 [root@Slave01 ~]# mysql -uroot -p
3 Enter password:
4 mysql> start slave;
5 mysql> show slave status\G #查看slave状态
6 ……
7 Slave_IO_State: Waiting for master to send event
8 Master_Host: 172.24.8.10
9 Master_User: repl_user
10 Master_Port: 3306
11 Connect_Retry: 60
12 Master_Log_File: mysql-bin.000001
13 Read_Master_Log_Pos: 120
14 Relay_Log_File: =mysql-relay-bin.000001
15 Relay_Log_Pos: 283
16 Relay_Master_Log_File: mysql-bin.000002
17 Slave_IO_Running: YES
18 Slave_SQL_Running: YES
19 ……
20 Exec_Master_Log_Pos: 120
21 Relay_Log_Space: 120
22 ……
23 Master_Info_File: /var/lib/mysql/master.info
 
提示:
slave的I/O和SQL线程都已经开始运行,而且Seconds_Behind_Master不再是NULL。日志的位置增加了,意味着一些事件被获取并执行了。如果你在master上进行修改,你可以在slave上看到各种日志文件的位置的变化,同样,你也可以看到数据库中数据的变化。

3.2 验证主从

在Master主服务器上创建库并插入相应数据:
  1 [root@Master ~]# mysql -uroot -p
2 Enter password:
3 mysql> create database mysqltest;
4 mysql> use mysqltest;
5 mysql> create table user(id int(5),name char(10));
6 mysql> insert into user values (00001,'zhangsan');
7 在Slave从服务器上进行验证:
8 [root@Master ~]# mysql -uroot -p
9 Enter password:
10 mysql> show databases;
11 mysql> select * from mysqltest.user;
 
结论:
从上图中的结果,我们可以看到mysql主从复制已经在起作用了,我们在主数据库中写入的数据已经复制到我们的从数据库中了。
提示:
若出现以下报错:
可尝试重启slave:
  1 mysql> reset slave;

002.MySQL高可用主从复制部署的更多相关文章

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

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

  2. 003.MySQL高可用主从复制新增slave

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

  3. MySQL高可用主从复制新增slave

    原文转自:https://www.cnblogs.com/itzgr/p/10233932.html作者:木二 目录 一 基础环境 二 新增slave2方案 2.1 方案1:-复制主库 2.2 方案2 ...

  4. 001.MySQL高可用主从复制简介

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

  5. MySQL高可用主从复制简介

    原文转自:https://www.cnblogs.com/itzgr/p/10233932.html作者:木二 目录 一 简介 1.1 概述 二 技术原理 2.1 支持的复制类型 2.2 技术特点 2 ...

  6. MySQL高可用方案-PXC环境部署记录

    之前梳理了Mysql+Keepalived双主热备高可用操作记录,对于mysql高可用方案,经常用到的的主要有下面三种: 一.基于主从复制的高可用方案:双节点主从 + keepalived 一般来说, ...

  7. MySQL高可用方案MHA的部署和原理

    MHA(Master High Availability)是一套相对成熟的MySQL高可用方案,能做到在0~30s内自动完成数据库的故障切换操作,在master服务器不宕机的情况下,基本能保证数据的一 ...

  8. MySQL高可用架构-MHA环境部署记录

    一.MHA介绍 MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司) ...

  9. 基于PXC的MySQL高可用环境简单部署

    PXC简介 Percona XtraDB Cluster(简称PXC集群)提供了MySQL高可用的一种实现方法. 1.集群是有节点组成的,推荐配置至少3个节点,但是也可以运行在2个节点上. 2.每个节 ...

随机推荐

  1. Flex布局新旧混合写法详解

    flex是个非常好用的属性,如果说有什么可以完全代替 float 和 position ,那么肯定是非它莫属了(虽然现在还有很多不支持 flex 的浏览器).然而国内很多浏览器对 Flex 的支持都不 ...

  2. binary(binary区分大小写),unsigned,unsigned zerofill关键字介绍

    mysql建表时,每个字段的属性有三个选项: binary,unsigned,unsigned zerofill,作用如下: 一.binary CHAR VARCHAR:值根据缺省字符集以大小写不区分 ...

  3. SpringBoot实现异步

    1.创建AsyncTest类 package com.cppdy.service; import org.springframework.scheduling.annotation.Async; im ...

  4. PDF如何去除背景,PDF去除背景颜色

    PDF文件在使用的时候大多都是单调的白色背景,但是也有小伙伴再制作PDF文件的时候会给PDF文件添加背景颜色,会有影响文字阅读的情况,这个时候就需要把背景颜色去除了,那么该怎么做呢,不会的小伙们就跟小 ...

  5. HTML&javaSkcript&CSS&jQuery&ajax-XSS

    一.CSS  标题隐藏 1. <sytle>h1.hidden {visibility: hidden;} </style> <body> <h1>这是 ...

  6. java----重载

    重载: //同一个类中,方法名相同,参数列表不同[java就是靠不同的参数列表来寻找方法的],返回值可以任意,注意和函数的返回值类型相同.public class Demo { public stat ...

  7. noip 初赛复习重点知识点

    一.进制转化 将k进制数转化为十进制数: 设k进制数为(abcd)k,则对应十进制数为 (小数同理,乘k的负幂次) 将十进制数转成k进制数: 设十进制数为x: t1=x/k,t2=x mod k t1 ...

  8. Git使用二:git与svn的区别与工作流程

    svn记录的是每一次版本变动的内容,三角形代表改动的内容 git是将每个版本独立保存 git的三棵树:工作区域.暂存区域.git仓库 工作目录:平时存放项目的地方暂存区域:临时存放改动,即将提交到仓库 ...

  9. ERROR 2002 (HY000): Can't connect to local MySQL server through socket '***' (2)

    有时候,当我们使用“mysql”.“mysqladmin”.“mysqldump”等命令管理数据库时,服务器抛出类似如下错误: ERROR (HY000): Can't connect to loca ...

  10. IDEA加载项目的设置是tomcat