mysql之使用centos7实现主从复制(读写分离)的实现过程
什么是主从复制?
主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;主数据库一般是准实时的业务数据库。
主从复制的作用(好处)!
1、做数据的热备,作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据丢失。
2、架构的扩展。业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问的频率,提高单个机器的I/O性能。
3、读写分离,使数据库能支撑更大的并发。在报表中尤其重要。由于部分报表sql语句非常的慢,导致锁表,影响前台服务。如果前台使用master,报表使用slave,那么报表sql将不会造成前台锁,保证了前台速度。
Mysql简介:
数据库的种类很多,Oracle、Sql Server、mySQL、Access等他们个自有自己的特点和应用范围,因为一直做sqlserver之前用的比较多的是SqlServer.由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。MySQL是一个多用户、多线程的关系型数据库管理系统。 工作模式是基于客户机/服务器结构。目前它可以支持几乎所有的操作系统,同时也可以和php完美结合。
简单的来说 ,MySql是一个开放的、快速的、多线程的、多用户的SQL数据库服务器。
下面介绍怎么使用Mysql实现主从复制.
1.首先用Vmware创建两个centos7的服务器系统(多个也可以,这里只创建两个,并关闭防火墙).两个服务器的IP分别是 主:192.168.2.128,从:192.168.2.130.
2.在两个服务器中分别安装mysql数据库,并开放给本机(windows)登录(centos7安装mysql数据库本文并不过多赘述).
3.本机用workbench登录主服务器数据库与从服务器数据库,并在其中创建两个相同结构的数据库与数据表.
4.在主服务器中设置mysql配置:
1):使用命令 vi /etc/my.cnf添加配置,添加完成后保存.
5.在主服务器上登录mysql:使用命令 mysql -u root -p.
6.创建一个账号(用来让从服务器登录连接主服务器并复制主服务器的数据日志以达到主从复制的目的)
mysql> create user 'datasync'@'192.168.2.%' identified by 'DataSync.123456';
mysql> grant replication slave on *.* to 'datasync'@'192.168.2.%';
7.重启mysql服务:使用命令 systemctl restart mysqld
8.登录mysql数据库查看master状态 先使用命令mysql -u root -p登录,然后使用命令 show master status;查看状态(记住下图中的状态配置,在从服务器设置中将会用到);
至此,主服务器的配置工作已全部完成,接下来是从服务器配置过程.
9.登录从服务器(192.168.2.130),登录mysql,mysql -u root -p.并修改配置文件 vi /etc/my.cnf
10.重启mysql服务 systemctl restart mysqld
11.在mysql中配置用户同步 change master to master_host='192.168.2.128',master_port=3306,master_user='datasync',master_password='DataSync.123456',master_log_file='mysql-bin.000004',master_log_pos=447;
12.启动slave: 使用命令 start slave;
13.查看slave状态:show slave status\G(如果Slave_IO_Running和Slave_SQL_Running的结果都为Yes的话,表明从服务器配置成功);
14.配置完成,这时候我们往主服务器插入几条数据:
15.打开从服务器数据库中的相关表,查看表中有无更新数据(可以看到,我们并没有往从服务器中手动插入数据,但是从服务器中有了三条数据,跟我们在往主服务器中插入的数据一模一样,表明主从复制已经成功):
至此,mysql主从复制配置成功,测试成功.
mysql之使用centos7实现主从复制(读写分离)的实现过程的更多相关文章
- mysql主从复制-读写分离
mysql主从复制+读写分离 环境:mysql主:193.168.1.1mysql从:193.168.1.2amoeba代理:193.168.1.3########################## ...
- Mysql多实例安装+主从复制+读写分离 -学习笔记
Mysql多实例安装+主从复制+读写分离 -学习笔记 .embody{ padding:10px 10px 10px; margin:0 -20px; border-bottom:solid 1px ...
- MySQL 主从复制&读写分离 简介
1. 读写分离&读写分离 简介 主从同步延迟 分配机制 解决单点故障 总结 2. 主从复制&读写分离 搭建 搭建主从复制(双主) 搭建读写分离 1. 读写分离&读写分离 简介 ...
- MySQL/MariaDB数据库的PROXY实现读写分离
MySQL/MariaDB数据库的PROXY实现读写分离 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.ProxySQL概述 1>.各家互联网公司读写分离的解决方案 m ...
- MySQL常用工具、日志及读写分离
MySQL常用工具.日志及读写分离 1.MySQL中常用工具 1.1 mysql 1.1.1连接选项 1.1.2 执行选项 1.2 mysqladmin 1.3 mysqlbinlog 1.4 mys ...
- MySQL 之 MHA + ProxySQL + keepalived 实现读写分离,高可用(二)
ProxySQL安装 yum/rpm安装 在github或官网上可以下载rpm包,wiki的Getting start章节有详细介绍. cat <<EOF | tee /etc/yum.r ...
- MySQL架构之 主从+ProxySQL实现读写分离
准备服务器: docker run -d --privileged -v `pwd`/mysql_data:/data -p 3001:3306 --name mysql5-master --host ...
- atlas+mysql主主集群实现读写分离
atlas+mysql主主集群实现读写分离 前言: 目前线上系统数据库采用的是主主架构.其中一台主仅在故障时切换使用,(仅单台服务器对外提供服务,当一台出现问题,切换至另一台).该结构很难支撑较大并 ...
- redis 主从复制+读写分离+哨兵
1.redis读写分离应用场景 当数据量变得庞大的时候,读写分离还是很有必要的.同时避免一个redis服务宕机,导致应用宕机的情况,我们启用sentinel(哨兵)服务,实现主从切换的功能.redis ...
随机推荐
- 5-Qt读取文件失败原因
刚开始准备读取当前目录下的txt文件: QFile file(":/xuhao.txt");或者: QFile file("./xuhao.txt"); 但是一 ...
- Santa Claus and a Place in a Class
/* Santa Claus is the first who came to the Christmas Olympiad, and he is going to be the first to t ...
- Vue.js 生命周期的应用
生命周期示意图 值得注意的几个钩子函数 activated 类型:Function 详细: keep-alive 组件激活时调用. 该钩子在服务器端渲染期间不被调用. 参考: 构建组件 - keep- ...
- Jmeter将HTTP request报文体中的字符串转换为大写
<awd><client id='${__javaScript("${IndividualID}".toUpperCase())}'><member ...
- WCF数据契约代理和已知类型的使用
using Bll; using System; using System.CodeDom; using System.Collections.Generic; using System.Collec ...
- c++11多线程学习笔记之四 生产消费者
#ifndef MY_QUEUE_H__ #define MY_QUEUE_H__ #include<list> #include<mutex> #include<thr ...
- RSA生成、加密、解密、签名。
首先,要会生成RSA密码对. https://app.alipay.com/market/document.htm?name=saomazhifu#page-23 (事例中的密钥对好像有问题,最 ...
- Python 版本之 Anaconda
https://www.anaconda.com/download/#linux Anaconda概述 Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windo ...
- input不能输入中文
<input type="text" oninput="this.value = this.value.replace(/[\u4e00-\u9fa5d]/g, ' ...
- Shell获取当前路径
PRG="$0" while [ -h "$PRG" ]; do ls=`ls -ld "$PRG"` link=`expr "$ ...