Centos7配置mysql主从:一主多从

mysql主从复制原理
1.首先master将数据更新记录到二进制binlog文件
2.slave通过I/O线程向master请求binlog日志文件指定位置之后的内容
3.master接收到slave的io请求之后,就会从binlog相应的位置点开始,给slave传日志
4.slave接收到日志后,会写入本地的relay log中继日志中
5.slave通过sql线程读取中继日志的内容,在数据库中执行相应的操作,到此为止,master和slave上的数据一致,之后slave服务器进入等待状态,等待master的后续更新
系统环境

服务器 IP地址 操作系统 安装软件
Mysql_master 192.168.2.217 Centos 7 64位 mysql-5.7.23
Mysql_slave1 192.168.2.218 Centos 7 64位 mysql-5.7.23
Mysql_slave2 192.168.2.219 Centos 7 64位 mysql-5.7.23

mysql是通过源码编译安装,配置文件:/etc/my.cnf,安装目录:/data/mysql,数据存放目录:/data/mysql/data,bin-log日志目录:/data/mysql/bin-log,测试同步数据库:zabbix
在master上操作
(1)创建bin-log日志存放目录

mkdir /data/mysql/bin-log
chown -R mysql:mysql /data/mysql/bin-log

(2)修改master的配置文件,在[mysqld]下面添加如下配置内容

server-id=1   #master ID
log-bin=/data/mysql/bin-log/mysql-bin   #指定binlog日志目录
binlog-do-db=zabbix   #指定生成binlog日志的数据库

(3)如果开启了firewalld防火墙,需要开放mysql端口

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.2.0/24" port protocol="tcp" port="3306" accept"
firewall-cmd --reload

(4)重启mysql
service mysqld restart
(5)创建zabbix数据库,并导入表结构

mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> use zabbix;
mysql> source /tmp/schema.sql;

(6)查看bin-log和master状态

mysql> show variables like "log_bin";
mysql> show master status;


(7)创建同步用户

mysql> grant replication slave on *.* to ‘xuad‘@‘192.168.2.%‘ identified by ‘xu123456‘;
mysql> select user,host from mysql.user;


在两台从库上操作
(1)在两台从库上创建zabbix数据库

mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> exit

(2)在master上备份一份完整的数据库,在两台slave上导入

mysqldump -uroot -p123456 --single-transaction --master-data=2 zabbix > /tmp/zabbix.sql
scp -P 22 /tmp/zabbix.sql [email protected]:/tmp/
scp -P 22 /tmp/zabbix.sql [email protected]:/tmp/
mysql -uroot -p123456 zabbix < /tmp/zabbix.sql

(3)修改slave的配置文件,在[mysqld]下面添加如下配置内容

server-id=2  #slave ID,另一台配置成3
replicate-do-db=zabbix   #指定同步的数据库

(4)重启两台slave的mysql
service mysqld restart
(5)分别在两台slave上创建主从同步

mysql> change master to  master_host=‘192.168.2.217‘, master_port=3306, master_user=‘xuad‘, master_password=‘xu123456‘, master_log_file=‘mysql-bin.000001‘, master_log_pos=211943;
mysql> start slave;
mysql> show slave status\G


测试
(1)在master上导入zabbix的数据

mysql -uroot -p123456 zabbix < /tmp/images.sql
mysql -uroot -p123456 zabbix < /tmp/data.sql

(2)查看master和slave状态的Position是否一致
mysql&gt; show master status;

mysql&gt; show slave status\G

(3)检查从库上是否已经有数据了

mysql> use zabbix;
mysql> select userid,alias,name,passwd from users;


至此mysql一主双从配置完成

原文地址:http://blog.51cto.com/andyxu/2162383

时间: 2024-07-29 13:46:36

Centos7配置mysql主从:一主多从的相关文章

学一点 MYSQL 双机异地热备份—-MYSQL主从,主主备份原理及实践

简单介绍mysql双机,多机异地热备简单原理实战. 双机热备的概念简单说一下,就是要保持两个数据库的状态自动同步.对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库数据一致. 这样做的好处多. 1. 可以做灾备,其中一个坏了可以切换到另一个. 2. 可以做负载均衡,可以将请求分摊到其中任何一台上,提高网站吞吐量.  对于异地热备,尤其适合灾备.废话不多说了.我们直接进入主题. 我们会主要介绍两部分内容: 一, mysql 备份工作原理 二, 备份实战 我们开始. 我使用的是my

Ubuntu配置Mysql主从数据库

MySQL数据库支持数据库的主从复制功能,因此在集群方面具有其独特的优势.众多国内外大型网站架构体系中,均采用了MySQL的主从数据库配置来实现查询负载.数据库热备等功能.本人在实际的Web项目中也涉及到这一需求,在此将如何配置实现做个简单小结. 本次环境:虚拟机下 服务器:Ubuntu 14.04 LTS数据库: 5.5.37端口:3306主IP:192.168.63.133从IP:192.168.63.134授权账号:user:suxhpassword:111111好了交代完环境:我们直接配

docker下配置mysql 主从

本机docker下配置mysql主从 首先安装docker mysql容器 $ docker pull mysql:5.6 拉取两个相同版本mysql 分别启动mysql 并设置root用户密码为admin: //主mysql docker run -d -e MYSQL_ROOT_PASSWORD=admin --name mysql-master -v /Volumes/docker/mysql/my-m.cnf:/etc/mysql/my.cnf -p 3307:3306 mysql:5.

mysql主从:主键冲突问题

1.检查从库 show slave status \G; Slave_IO_Running: YesSlave_SQL_Running: No 2.出现类似如下的报错: Last_SQL_Error: Error 'Duplicate entry '1001-164761-0' for key 'PRIMARY'' on query. Default database: 'bug'. Query: 'insert into misdata (uid,mid,pid,state,mtime) va

配置MYSQL服务器实现主主复制

声明 作者:昨夜星辰 博客:http://yestreenstars.blog.51cto.com/ 本文由本人创作,如需转载,请注明出处,谢谢合作! 目的 配置MYSQL服务器实现主主复制. 实验环境 服务器1(以下简称S1): IP:192.168.1.88 服务器2(以下简称S2): IP:192.168.1.89 OS:CentOS 6.2 32 MYSQL:5.1.73 配置 # 先停止S1和S2的iptables防火墙. service iptables stop # 修改S1的/e

mysql主从、主主配置

MySQL复制概述 ⑴.MySQL数据的复制的基本介绍 目前MySQL数据库已经占去数据库市场上很大的份额,其一是由于MySQL数据的开源性和高性能,当然还有重要的一条就是免费~不过不知道还能免费多久,不容乐观的未来,但是我们还是要能熟练掌握MySQL数据的架构和安全备份等功能,毕竟现在它还算是开源界的老大吧! MySQL数据库支持同步复制.单向.异步复制,在复制的过程中一个服务器充当主服务,而一个或多个服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环.这

实验1 配置MySQL主从同步

系统版本:              windows7x64 虚拟机:                  centos 6.5x64 ip规划:                   主192.168.0.29 从192.168.0.42 ssh连接工具:         ssh secure shell client vpn工具:                ssl vpn-plus client 实验内容: 1. 为虚拟机安装MySQL数据库 2. 配置MySQL数据库,使本机的mysql客

学一点 mysql 双机异地热备份----快速理解mysql主从,主主备份原理及实践

双机热备的概念简单说一下,就是要保持两个数据库的状态自动同步.对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库数据一致. 这样做的好处多. 1. 可以做灾备,其中一个坏了可以切换到另一个. 2. 可以做负载均衡,可以将请求分摊到其中任何一台上,提高网站吞吐量.  对于异地热备,尤其适合灾备.废话不多说了.我们直接进入主题. 我们会主要介绍两部分内容: 一, MySQL 备份工作原理 二, 备份实战 我们开始. 我使用的是mysql 5.5.34, 一, mysql 备份工作原

centos 6.5配置mysql主从同步过程

在centos 6.5上设置了mysql主从功能,记录一下. 测试环境搭建的,希望对大家有帮助. 服务器1(主)IP:192.168.1.201系统版本:centos 6.5mysql版本:mysql 5.5 服务器2(从)IP:192.168.1.202系统版本:centos 6.5mysql版本:mysql 5.5 这里两台服务器的系统版本和mysql版本均一致,这也是官方推荐的做法.在开始设定之前,最好能确保主库和从库一致. 1.主库和从库创建同步用户 mysql> grant repli