总结之:CentOS 6.5 MariaDB或MySQL主从复制详解

本文涉及的产品
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

MySQL Replocation:NySQL复制,MySQL的复制默认为异步工作模式
   mysql的复制功能是mysql内置的,装上它之后就具备了这个功能,而mysql复制是mysql实现大规模高性能应用的一个基本工具,是mysql完成水平扩展的基本架构,为了能够应付更多的访问请求,通常情况下我们需要对服务器进行扩展,而扩展通常有两种方式:向上扩展和向外扩展;
向上扩展:scale on,也称为垂直扩展,一般是扩充服务器的内存或CPU颗数的这种就是向上扩展。
向外扩展:scale out,也称为水平扩展,比较一台服务器不够,再加一台服务器,再不够再加,这种情况就是向外扩展。
其实MySQL的的复制功能就是使用MySQL向外扩展的能力,也就是水平扩展的功能。

   所谓同步的复制:首先主服务器每更新一条数据先写到磁盘文件中,同时还要写一个到二进制日志文件中,从服务器就会到主服务器请求二进制信息保存在中继日志中,保存好后由本地的SQL thread从中继日志应用到从服务器的本地有磁盘文件中,当这个过程完成之后再由从服务器返回确认结果给主服务器,主服务器才返回结果给客户端的。
所谓异步复制:当主服务器要写数据时,先写到本地的磁盘,同时写到二进制文件日志中,写好二进制日志文件后就把结果返回给客户端,至于从服务有没有来主服务器同步二进制日志他不关心。
注意:在做复制时双方的的MySQL要一致,如果不一致,主的要低于从的。
   MySQL主从服务的工作原理图:

wKioL1NJSEbx9Dz0AAOohJbAW-w420.jpg

   这里还要注意,如果从服务器不断的到主服务器来请求数据,发现这些数据已经是最新的数据了,那从服务器的I/O thread将会转为睡眠状态,因为主服务器会通知,而I/O线程不会做轮循,从服务器的二进制日志文件通常是被关闭状态的,从服务器是不允许执行写操作的。

下面来完成主从复制的基本操作步骤:
   1、这里我们要有两台主机、我这里使用克隆主服务器的主机当做从服务器、首先要把虚拟主机关机才可以克隆的:

wKiom1NJSNfwhN9ZAAJ_Vy_-uh0925.jpg

wKioL1NJSM3BkkBdAAEhlLpuEVw165.jpg

wKiom1NJSRGB-e8nAAD6IOmtor0934.jpg


   克隆完之后我们就开机登录、确保主从服务器都正常运行了即可:
wKioL1NJSUrRFE7fAAF5yBfM-pU195.jpg

wKiom1NJSY3jwbtaAAFK_P1knII792.jpg

wKioL1NJSZriZVDuAADbv5yisnU563.jpg

wKioL1NJSbTinPbEAADegnAVVC0676.jpg


   2、做主从复制最重要的一点就是双方的server-id不能相同;然而在主服务器上只需要三步
   1)就是改server-id
   2)启用二进制日志
   3)创建有复制权限的帐号
   # vim /etc/my.cnf

wKioL1NJSenhMWMOAAEgWhtbavw995.jpg


   改好之后保存退出即可,再重启服务器,创建二进制目录:
   # mkdir /data/binlogs
   # chown -R mysql.mysql /data/binlogs
   重启主服务器的mysql服务;
   # service mysqld restart

   而后连接到主服务器上授权一个有复制权限的帐号:
   # mysql -uroot -hlocalhost -p    

1
2
MariaDB [hellodb]> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO  'repluser' @ '172.16.251.156'  IDENTIFIED BY  'replpass' ;
MariaDB [hellodb]> FLUSH PRIVILEGES;


   3、在从服务器上有以下几步
   1)改server-id
   2)启用中继日志
   3)连接主服务器
   4)启动复制线程
   配置从服务器的相关配置信息:
   # vim /etc/my.cnf

wKioL1NJSkbBRXGvAAE5NomCrFo978.jpg


   # mkdir /data/relaylogs/
   # chown -R mysql.mysql /data/relaylogs
   重启mysql服务:
   # service mysqld restart
   再连到从服务器的mysql服务器上:
   # mysql -uroot -hlocalhost -p
   查看一下从服务器的中继日志是否在启动状态:
   MariaDB [(none)]> SHOW GLOBAL VARIABLES LIKE '%relay%';

wKioL1NJSw2w5rPgAAGcFF1JJ_k231.jpg


   按照上面的步骤再连接主服务器:    

1
2
3
4
5
6
# MASTER_HOST='172.16.251.244' --主服务器的IP地址
# MASTER_USER='repluser' --主服务器上授权复制的用户名
# MASTER_PASSWORD='replpass' --主服务器上授权用名的密码
# MASTER_LOG_FILE='mysql-bin.000006' --主服务器上的日志文件
# MASTER_LOG_POS=245 --主服务器上日志文件的位置
MariaDB [hellodb]> CHANGE MASTER TO MASTER_HOST= '172.16.251.244' ,MASTER_USER= 'repluser' ,MASTER_PASSWORD= 'replpass' ,MASTER_LOG_FILE= 'mysql-bin.000006' ,MASTER_LOG_POS=245;

   但是此时的从服务器还没有工作起来,要使从服务器工作起来还要手动启动复制线程,我们上面的步骤写得很明白:
   MariaDB [(none)]> START SLAVE;
   wKioL1NJTOqRskaJAAHjV-swIII836.jpg
   wKiom1NJTTPRBlyQAAE2gdqxSs4231.jpg

   wKioL1NJTSXS_-QWAAD1fdFHbcA279.jpg

   wKiom1NJTYaABWNsAAD15iPHxl4387.jpg

   OK、到这里主服务器算是配置完成了,仓促整理了一下,有什么不对的地方还望多多提点,在此先谢谢你的关注了!    










本文转自 wei0164 51CTO博客,原文链接:http://blog.51cto.com/tanxw/1394762,如需转载请自行联系原作者
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4天前
|
关系型数据库 MySQL 网络安全
Mysql 数据库主从复制
在MySQL主从复制环境中,配置了两台虚拟机:主VM拥有IP1,从VM有IP2。主VM的`my.cnf`设置server-id为1,启用二进制日志;从VM设置server-id为2,开启GTID模式。通过`find`命令查找配置文件,编辑`my.cnf`,在主服务器上创建复制用户,记录二进制日志信息,然后锁定表并备份数据。备份文件通过SCP传输到从服务器,恢复数据并配置复制源,启动复制。检查复制状态确认运行正常。最后解锁表,完成主从同步,新用户在从库中自动更新。
865 6
Mysql 数据库主从复制
|
15天前
|
安全 关系型数据库 MySQL
CentOS 8 中安装与配置 MySQL
CentOS 8 中安装与配置 MySQL
75 3
|
16天前
|
安全 关系型数据库 MySQL
Centos、OpenEuler系统安装mysql
Centos、OpenEuler系统安装mysql
19 1
|
7天前
|
关系型数据库 MySQL Linux
Linux部署实战前言,MySQL在CentOS安装【单机软件】,MySQL的安装需要root权限,yum install mysql,systemctl enable mysqld开机自启的意思
Linux部署实战前言,MySQL在CentOS安装【单机软件】,MySQL的安装需要root权限,yum install mysql,systemctl enable mysqld开机自启的意思
|
7天前
|
SQL 关系型数据库 MySQL
MYSQL8.0在CentOS安装[单机软件]
MYSQL8.0在CentOS安装[单机软件]
|
8天前
|
关系型数据库 MySQL Linux
Centos7下在线安装mysql
【7 月更文挑战第 2 天】Centos7、mysql
|
9月前
|
NoSQL 关系型数据库 MySQL
阿里云RDS关系型数据库大全_MySQL版、PolarDB、PostgreSQL、SQL Server和MariaDB等
阿里云RDS关系型数据库如MySQL版、PolarDB、PostgreSQL、SQL Server和MariaDB等,NoSQL数据库如Redis、Tair、Lindorm和MongoDB
285 0
|
9月前
|
NoSQL 关系型数据库 MySQL
阿里云关系型数据库详细介绍MySQL/MariaDB/SQL Server/PolarDB/PostgreSQL等
阿里云关系型数据库详细介绍MySQL/MariaDB/SQL Server/PolarDB/PostgreSQL等,阿里云RDS关系型数据库如MySQL版、PolarDB、PostgreSQL、SQL Server和MariaDB等
148 0
|
9月前
|
NoSQL Cloud Native 关系型数据库
阿里云RDS数据库_MySQL_SQL Server_MariaDB_PolarDB_PostgreSQL
阿里云RDS关系型数据库大全:MySQL版、PolarDB、PostgreSQL、SQL Server和MariaDB等
118 0
|
11月前
|
关系型数据库 MySQL API
MariaDB数据库中如何允许远程链接mysql并开放3306端口
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。
643 0