MySQL高可用主从复制部署

目录


一 基础环境


主机名

系统版本

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

2.2 初始化MySQL

  1 [[email protected] ~]# service mysqld start
  2 [[email protected] ~]# mysql_secure_installation
  3 [[email protected] ~]# service iptables stop
  4 [[email protected] ~]# chkconfig iptables off
  5 [[email protected] ~]# vi /etc/sysconfig/selinux
  6 SELINUX=disabled

注意:以上操作在Slave主机上也需要执行。

安装参考:http://www.cnblogs.com/007sx/p/7083143.html

2.3 master my.cf配置

  1 [[email protected] ~]# 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 [[email protected] ~]# 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 [[email protected] ~]# service mysqld restart
  6 [[email protected] ~]# mysql -uroot -p
  7 Enter password:
  8 mysql> show master status;

file:mysql-bin.000001

position:120

2.5 slave my.cf配置

  1 [[email protected] ~]# 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 [[email protected] ~]# service mysqld restart
  2 [[email protected] ~]# 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 [[email protected] ~]# service mysqld restart
  2 [[email protected] ~]# 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 [[email protected] ~]# 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 [[email protected] ~]# mysql -uroot -p
  9 Enter password:
 10 mysql> show databases;
 11 mysql> select * from mysqltest.user;

结论:

从上图中的结果,我们可以看到mysql主从复制已经在起作用了,我们在主数据库中写入的数据已经复制到我们的从数据库中了。

提示:

若出现以下报错:

可尝试重启slave:

  1 mysql> reset slave;

原文地址:https://www.cnblogs.com/drizzle-xu/p/10276299.html

时间: 2024-10-07 13:43:09

MySQL高可用主从复制部署的相关文章

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

一 基础环境 主机名 系统版本 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 [[email protected] ~]# yum list installed | grep mysql #查看是否存在其他MySQL组件 2 [[email protected] ~]# yum -y remove mysql-li

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

一 基础环境 主机名 系统版本 MySQL版本 主机IP master CentOS 6.8 MySQL 5.6 172.24.8.10 slave01 CentOS 6.8 MySQL 5.6 172.24.8.11 slave02 CentOS 6.8 MySQL 5.6 172.24.8.20 二 新增slave2方案 2.1 方案1:-复制主库 复制主库要步骤: 将内存中的数据同步到表中: 锁定表,不让出现新数据: 备份: 解锁: 将备份传送到slave02,在slave02上同步数据:

MySQL高可用主从复制新增slave

目录 一 基础环境 二 新增slave2方案 2.1 方案1:-复制主库 2.2 方案2:复制从库 2.3 方案对比 二 新增slave2 2.1 部署主从 2.2 slave-02安装MySQL 2.2 初始化MySQL 三 方案1形式 3.1 锁定主库 3.2 备份主库 3.3 解锁主库 3.4 传递备份文件至slave02 3.5 主库继续新建数据库 3.6 备库slave02开启主从复制 3.7 备库slave02恢复mysqltest 3.8 备库slave02开启主从复制 3.9 验

MySQL高可用MHA部署 (一主二从)

MHA介绍: MHA是一套MySQL故障切换和主从提升的高可用软件.在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性.MHA部署简单,也需要额外的服务器开销,运行MHA时对数据服务器性能几乎没有影响,也不需要对现有架构做调整. 同时MHA还支持主库在线切换,能够安全地将现在的主库切到新的主库,只会对写操作有0.5~2s的阻塞,对读没有影响. MHA有以下功能,对有高可用,数据一致性,主库不停机维

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

一 简介 1.1 概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布在多个系统之上,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的.复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环.这些日志可以记录发送到从服务器的更新.当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置.从

mysql高可用MHA部署全过程

部署计划 mysql_master 192.168.2.74 centos6.9 mysql5.5/mha-node mysql_salve1 192.168.2.75 centos6.9 mysql5.5/mha-node mysql_salve2 192.168.2.76 centos6.9 mysql5.5/mha-node/mha-man 本次部署采用3台服务器,mha-manager不单独使用一台服务器安装,生产上可以单独出来,本次使用采用centos6.9系统(使用 http://y

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

一.MHA介绍 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是日本的一位 MySQL专家采用Perl语言编写的一个脚本管理工具,该工具仅适用于MySQLReplication(二层)环境,目的在于维持Master主库的高可用性.是一套优秀的作为MySQL高可用性 环境下故障切

MySQL高可用之MHA部署

MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用. MHA里有两个角色一个是MHA Node(数据节点)另一个是MHA Manager(管理节点). MHA Manager可以单独部署在一台独立的机器上管理多个master-slave集群,也可以部署在一台sla

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

PXC简介 Percona XtraDB Cluster(简称PXC集群)提供了MySQL高可用的一种实现方法. 1.集群是有节点组成的,推荐配置至少3个节点,但是也可以运行在2个节点上. 2.每个节点都是普通的mysql/percona服务器,可以将现有的数据库服务器组成集群,反之,也可以将集群拆分成单独的服务器. 3.每个节点都包含完整的数据副本. PXC集群主要由两部分组成:Percona Server with XtraDB和Write Set Replication patches(使