两台服务器做数据主从备份(读写分离主从同步需要锁吗)

技术如何用两台服务器实现数据库的主从同步与分离这期内容当中小编将会给大家带来有关如何用两台服务器实现数据库的主从同步与分离,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。使用背景:在网联

本期,边肖将为您带来如何使用两台服务器实现数据库主从同步和分离的信息。文章内容丰富,从专业角度进行分析和描述。希望你看完这篇文章能有所收获。

背景:在网络不断发展的时代,人们在不断地使用数据。随着用户的请求越来越多,数据库的读写操作特别大,会导致服务器无法承受这么多用户的请求和数据操作,造成服务器负载,相应的用户等待时间也会特别长,给用户的体验特别差。主从同步是解决这个并发问题的好办法。

主从同步:简单来说就是用两台服务器分别处理用户的读写操作,从而实现读写分离。由于从服务器在主服务器上同步数据,所以主从同步极大地保证了数据的安全性。

原理:主从同步,分为两台服务器

图:主服务器是主服务器,从服务器是从服务器。

1.Master服务器对数据的操作,在事务更新完成之前,mysql会将日志以串行形式写入Binary日志日志(即二进制日志事件),事务完成后,Master会通知存储引擎提交事务。

2.提交事务后,从服务器将主服务器的二进制日志复制到自己的中继日志(即,从服务器打开输入/输出线程读取主服务器中的二进制日志,然后将其写入从服务器中的中继日志)

3.SOL线程读取中继日志中的日志,并重做数据,以将主机中的数据更改同步到从机。

因此在两台服务器中,Master为用户提供写(添加、删除、this)操作,Slave为公户提供读(查询)操作,大大降低了服务器的负载,解决了高并发的问题。

如何用两台服务器实现数据库的主从同步与分离

然后我们来看看如何用两台服务器构建mysql的主从同步(ps:今天只介绍如何在服务器上构建主从同步)。

如何用两台服务器实现数据库的主从同步与分离

在开始之前,我们需要两台服务器,安装linux系统,安装MySQL版或以上版本(首选vim编辑器)。

然后当这些环境准备好了,开始建造它们!

1.使用SSH连接您的两台服务器(我这里使用的两台服务器是主服务器和从服务器)

2.在主从机上修改mysql的配置文件

A.修改主服务器的配置文件。

如何用两台服务器实现数据库的主从同步与分离

输入命令:vim/etc/my . CNF(MySQL的默认安装位置)

将出现以下提示:

选择e进行编辑。

按下I键

在mysqld下添加以下配置:

服务器id=1log-bin=master-bin log-bin-index=master-bin . index如何用两台服务器实现数据库的主从同步与分离

如图所示(详见图片),wq保存退出,这里Master服务器的配置刚刚好。

然后重新加载mysql配置。

输入:服务mysqld重新启动

如何用两台服务器实现数据库的主从同步与分离

接下来,让我们看看配置是否成功。

在Master中登录mysql

命令:mysql -uroot -p

输入密码后进入mysql界面,进入show master状态,如图:

如何用两台服务器实现数据库的主从同步与分离

B.修改从属服务器(从属)的配置

连接从服务器,vim打开mysql的配置文件

同样的原理,在mysqld中添加配置。

server-id=2 relay-log=slave-relay-binrelay-log-Inde

x=slave-relay-bin.index

如图:

如何用两台服务器实现数据库的主从同步与分离

保存退出

然后重启mysql,这里介绍另一种重启mysql的方法

输入命令:/etc/init.d/mysql stop 停止

/etc/init.d/mysql start  启动

登录mysql验证配置是否有误

如何用两台服务器实现数据库的主从同步与分离

说明,配置没啥问题。

3.开始主从连接  

a.在主服务器中添加从服务器连接所用到的用户

在master中创建用户mengxin(ps:这是笔者用的名字)

create user mengxin

再授予mengxin 主从访问权限

grant replication slave on *.* to 'mengxin'@'从服务器的ip' identified by '连接时需要的用户密码(自己设置)';

然后输入:flush privileges

刷新更新权限信息

b.来到从服务器(Slave)进行连接

 登录到从服务器的mysql

 输入命令:

change master to master_host='主机ip',master_port=3306,master_user='mengxin',master_password='mengxin',master_log_file='master-bin.000001',master_log_pos=0

进行连接,

命令说明:master_host为Master服务器的ip,master_port为Master服务器的端口(默认为3306),master_user为刚刚在Master服务器上设置的user名,master_password为刚刚设置的密码,master_log_file为刚刚上面说到的要用的那个参数(ps:可以在master服务器上输入命令:show master status进行查看)

如何用两台服务器实现数据库的主从同步与分离

执行该命令后,表示连接已完成,

开启主从同步:start slave

然后输入:show slave status  \G;

查看运行状态:(如图,没有报错,表示主从同步成功配置)

如何用两台服务器实现数据库的主从同步与分离

最后让我们来验证一下,主从同步的效果:

在Master中创建mengxin_shop数据库

如何用两台服务器实现数据库的主从同步与分离

在Slave服务器中,查看数据库,可以看到在master中添加的数据库更新到Slave中了

如何用两台服务器实现数据库的主从同步与分离

呼,终于写完了,遇到了各种各样的错误,还是一点点的解决了

这里列举出配置过程中遇到的集中常见的错误吧

1.如果配置中,最后一步查看Slave的状态出现如图所示错误

如何用两台服务器实现数据库的主从同步与分离

这表明,mysql.user中没有plugin这个字段,这是因为你mysql的版本为5.1,没有这个字段,授权会出现问题

解决办法:将两台服务器的mysql版本保持到5.5以上,尽量相同版本

2.有时会出现Slave连接Master连接不上的错误,请检查服务器上的mysql数据库端口3306是否关闭防火墙。

3.有时会出现slave和master id相同的错误,请确保slave配置中的server-id是否值只存在一个,并且为2

上述就是小编为大家分享的如何用两台服务器实现数据库的主从同步与分离了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/151909.html

(0)

相关推荐

  • bad的反义词,“bad”的反义词是什么

    技术bad的反义词,“bad”的反义词是什么bad的反义词是bad的反义词:good词汇解析:
    good
    英文发音:[ɡʊd]
    中文释义:adj.好的;优质的;符合标准的;可接受的;令人愉快的;令人满意的;合情理的;有说

    生活 2021年10月29日
  • 市场前景好怎么形容,表示前景很好的四字成语

    技术市场前景好怎么形容,表示前景很好的四字成语1市场前景好怎么形容、前程似锦 2、鹏程万里 3、前途无量
    4、平步青云
    5、大展宏图1、 [拼音]:qián chéng sì jǐn[释义]:前程像锦绣那样。形容前途

    生活 2021年10月23日
  • 数据库中编码乱码怎么办

    技术数据库中编码乱码怎么办小编给大家分享一下数据库中编码乱码怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1. 使用 <META htt

    攻略 2021年11月24日
  • jquery中怎么显示和隐藏元素

    技术jquery中怎么显示和隐藏元素本篇内容介绍了“jquery中怎么显示和隐藏元素”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够

    攻略 2021年11月16日
  • VSCode中怎么搭建和配置PyQt5环境

    技术VSCode中怎么搭建和配置PyQt5环境本篇文章给大家分享的是有关VSCode中怎么搭建和配置PyQt5环境,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看

    攻略 2021年11月26日
  • pagerank算法原理举例子(pagerank算法详解)

    技术PageRank算法如何给网页排名PageRank算法如何给网页排名,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1,PageRank 算法原理Page

    攻略 2021年12月23日