MySQL主从复制的简单搭建
@
1、MySQL一主一从的简单搭建
1.1、主从复制简介
在实际生产中,数据的重要性不言而喻。如果我们的数据库只有一台服务器,那么很容易产生单点故障的问题,如果服务器宕机或者损坏了,那么整个数据库的数据就丢失了,这是重大的安全事故。所有我们必须部署两台或两台以上的服务器来存储我们的数据。也就是说我们将数据复制多份放在不同的服务器上。当某台服务器宕机后其他服务器还能提供服务。
1.2、MySQL主从复制简介
主从复制是指服务器分为主服务器和从服务器,主服务器负责读和写,从服务器只负责读,主从复制也叫 master/slave,master是主,slave是从,但是并没有强制,也就是说从也可以写,主也可以读,只不过一般我们不这么做。主从复制可以实现对数据库备份和读写分离。
1.3、主从复制的架构
1.4、前期准备
- 需要两台或者两台以上的服务器或者虚拟机
- 保证每台服务器上已经安装好了mysql并且能正常启动
1.5、主要配置实现
1.5.1、测试环境
主服务器ip:176.20.92.71
从服务器ip:176.20.92.73
MySQL版本:5.7.18
Linux版本:centos7
1.5.2、配置my.cnf文件
注意:如果没有这个配置文件的话可以自己在数据库的data目录下新建一个这个文件然后添加如下配置
[client]
port = 3306
socket = /usr/local/mysql-5.7.18/data/mysql.sock
default-character-set=utf8
[mysqld]
port = 3306
socket = /usr/local/mysql-5.7.18/data/mysql.sock
datadir = /usr/local/mysql-5.7.18/data
log-error = /usr/local/mysql-5.7.18/data/error.log
pid-file = /usr/local/mysql-5.7.18/data/mysql.pid
character-set-server=utf8
lower_case_table_names=1
autocommit = 1
注意 /usr/local/mysql-5.7.18/data 是自己服务器数据库的的data路径
1.5.3、启动mysql测试
这里不是正常启动,而是通过my.cnf这个配置文件启动mysql
./mysqld_safe --defaults-file=/usr/local/mysql-5.7.18/data/my.cnf &
主从两边启动都成功后,需要登录mysql进行测试
./mysql -uroot -h127.0.0.1 -p
主从两边都登录成功后再进行下面的配置
1.5.4、配置主从结构
1.5.4.1、主服务器配置
在my.cnf文件中加入如下配置,然后重新启动mysql
log-bin=mysql-bin #表示启用二进制日志
server-id=71 #表示server编号,编号要唯一
登入mysql输入如下命令
在主服务器上创建复制数据的账号并授权
grant replication slave on *.* to 'copy'@'%' identified by '123456';
查看主服务器状态 默认初始值:
File:mysql-bin.000001
Position:154
show master status;
如果不是初始值,是因为设置了copy用户导致Position数据增加 需要重置一下状态
重置状态
reset master;
重置之后再次查看状态
到这里主服务器的配置就完成了,下面来进行从服务器的配置
1.5.4.2、从服务器配置
在my.cnf文件中加入如下配置,然后重新启动mysql
server-id=73 #表示server编号,编号要唯一
登入mysql输入如下命令
查看服务器状态 初始状态:Empty set
show slave status;
如果不是初始状态,建议重置一下
重置命令如下
stop slave; #停止复制,相当于终止从服务器上的IO和SQL线程
reset slave;
设置从服务器的master
change master to master_host='176.20.92.71',master_user='copy',
master_port=3306,master_password='123456',
master_log_file='mysql-bin.000001',master_log_pos=154;
执行开始复制
start slave;
查看主从复制是否搭建完成
show slave status \G
如果 Slave_IO_Running: 为no 执行如下命令
stop slave;
reset slave;
start slave;
在此mysql的主从复制搭建就完成了,下面来进行测试
1.6、主从复制测试
在主服务器中建立一个testdb数据库
在主服务器的testdb中建立一个t_user表
可以发现主服务器建立t_user表从服务器也会自动创建t_user表
在主服务器中添加值
可以发现主服务器的表中添加了值,从服务器中的表中也会添加一模一样的值
在此mysql主从复制的简单搭建就全部完成了
MySQL主从复制的简单搭建的更多相关文章
- mysql主从复制(简单直观)
mysql主从复制 mysql主从复制(超简单) 怎么安装mysql数据库,这里不说了,只说它的主从复制,步骤如下: 1.主从服务器分别作以下操作: 1.1.版本一致 1.2.初始化表,并在后 ...
- 【MySQL主从复制原理及搭建全过程】
目录 准备工作 主从复制原理 开始搭建主从复制 本文将使用mariaDB数据库实现主从复制,其步骤与MySQL数据库无差异. MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护, ...
- Mysql主从复制原理及搭建
## Mysql主从复制原理 主从复制是指一台服务器充当主数据库服务器,另一台或多台服务器充当从数据库服务器,主服务器中的数据自动复制到从服务器之中.对于多级复制,数据库服务器即可充当主机,也可充当从 ...
- MySQL主从复制原理及搭建过程
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 复制概述 复制即把一台服务器上的数据通过某种手段同步到另外一台或多台从服务器上,使得从服务器在数据上与主服务器保持一致. ...
- Mysql 集群环境搭建
在上一篇文章中已经详细的写了关于Mysql的安装步骤.这一篇文章在上一篇文章的基础之上接着写集群的安装与部署. 安装地址:https://www.cnblogs.com/ming-blogs/p/10 ...
- Docker实战之MySQL主从复制
前言 曾几何时,看着高大上的架构和各位前辈高超的炫技,有没有怦然心动,也想一窥究竟?每当面试的时候,拿着单应用的架构,吹着分库分表的牛X,有没有心里慌的一批? 其实很多时候,我们所缺少的只是对高大上的 ...
- 【大型网站技术实践】初级篇:搭建MySQL主从复制经典架构
一.业务发展驱动数据发展 随着网站业务的不断发展,用户量的不断增加,数据量成倍地增长,数据库的访问量也呈线性地增长.特别是在用户访问高峰期间,并发访问量突然增大,数据库的负载压力也会增大,如果架构方案 ...
- (转)MySQL 主从复制搭建,基于日志(binlog
原文:http://blog.jobbole.com/110934/ 什么是MySQL主从复制 简单来说,就是保证主SQL(Master)和从SQL(Slave)的数据是一致性的,向Master插入数 ...
- my03_使用空数据库搭建Mysql主从复制
无数据的主从复制,就搭建一套主从结构的空库,这个是最简单的,先说说这种主从的搭建思路,有利于理解Mysql主从复制1. 安装两套mysql单实例数据库,一个作为主库.一个作为从库:注意要设置两个数据库 ...
随机推荐
- python_xlutils : python利用xlutils修改表格内容
一.xlutils是什么 是一个提供了许多操作修改excel文件方法的库: 属于python的第三方模块 xlrd库用于读取excel文件中的数据,xlwt库用于将数据写入excel文件,修改用xlu ...
- httprunner_安装及利用脚手架工具快速创建项目
一.安装httprunner 笔者自己安装的版本为2.5.7 安装命令: pip install httprunner==2.5.7 二.快速创建目录 hrun --startproject dem ...
- Python字符与字节新编
字符 字符是一个信息单位,简单来讲就是一个字母.数字.标点符号.汉字等. 字符的最佳定义是Unicode字符: 它是一个全球化的标准,能表示世界上所有语言的字符.Unicode字符的标识(码位)是以4 ...
- seldom 1.0 发布
seldom 是我几个月前重启的Web UI 自动化开源项目,源项目名 pyse, 基于 unittest 和 selenium 的自动化测试框架. seldom 1.0 做为第一个正式版做了以下改进 ...
- JavaScript DOM编程艺术第四章 — JavaScript图片库案例研究
这一章通过JavaScript图片库案例,学习了一些DOM属性. HTML代码 <!DOCTYPE html> <html> <head> <meta cha ...
- 基于webpack5封装的cli工具packx
安装 用 npm / yarn 安装: $ npm install -D packx $ yarn add -D packx 特性 基于 webpack5 支持 less,sass 支持 spa/mp ...
- React Hooks使用避坑指南
函数组件比类组件更加方便实现业务逻辑代码的分离和组件的复用,函数组件也比类组件轻量,没有react hooks之前,函数组件是无法实现LocalState的,这导致有localstate状态的组件无法 ...
- 华为云数据库GaussDB(for Cassandra)揭秘第二期:内存异常增长的排查经历
摘要:华为云数据库GaussDB(for Cassandra) 是一款基于计算存储分离架构,兼容Cassandra生态的云原生NoSQL数据库:它依靠共享存储池实现了强一致,保证数据的安全可靠. 本文 ...
- C# 位图BitArray 小试牛刀
前面聊了布隆过滤器,回归认识一下位图BitMap,阅读前文的同学应该发现了布隆过滤器本身就是基于位图,是位图的一种改进. 位图 先看一个问题, 假如有1千万个整数,整数范围在1到1亿之间,如何快速确定 ...
- 什么是DDoS黑洞路由?
1. 什么是DDoS黑洞路由? DDoS黑洞路由/过滤(有时称为黑孔)是缓解DDoS攻击的一种对策,网络流量将被路由到"黑洞"中并且丢失.如果在没有特定限制条件下实施黑洞过滤,合法 ...