利用MySQL主从配置实现读写分离减轻数据库压力

  

大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够。到了数据业务层,数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢失的话,后果更是不堪设想。这时候,我们会考虑如何减少数据库的联接,一方面采用优秀的代码框架,进行代码的优化,采用优秀的数据缓存技术如:memcached,如果资金丰厚的话,必然会想到假设服务器群,来分担主数据库的压力对吧切入今天文章主题,利用MySQL主从配置,实现读写分离,减轻数据库压力。这种方式,在如今很多网站里都有使用,也不是什么新鲜事情,今天总结一下,方便大家学习参考一下。

  

<强>概述:强搭设一台主服务器(win8.1系统,Ip: 192.168.0.104),搭设两台奴隶服务器(虚拟机,一台Ubuntu,一台Windows Server 2003)

  

<强>原理:主服务器(主)负责网站NonQuery操作,从服务器负责查询操作,用户可以根据网站功能模特性块固定访问奴隶服务器,或者自己写个池或队列,自由为请求分配从服务器连接。主从服务器利用MySQL的二进制日志文件,实现数据同步。二进制日志由主服务器产生,从服务器响应获取同步数据库。

  

<强>具体实现:

  

<强> 1,在主从服务器上都装上MySQL数据库,windows系统鄙人安装的是mysql_5.5.25.msi版本,Ubuntu安装的是mysql-5.6.22-linux-glibc2.5-i686.tar

  

窗口安装mysql就不谈了,一般地球人都应该会。鄙人稍微说一下Ubuntu的mysql安装,我建议不要在线下载安装,还是离线安装的好。大家可以参考https://www.jb51.net/article/157282.htm这位不知道大哥还是姐妹,写的挺好按照这个就能装上。在安装的时候可能会出现几种现象,大家可以参考解决一下:

  

(1)如果您不是使用根用户登录,建议su -根切换到根用户安装,那就不用老是sudo了。

  

(2)存放解压的mysql文件夹,文件夹名字最好改成mysql

  

(3)在。/支持文件/mysql。服务器开始启动MySQL的时候,可能会出现一个警告,中文意思是启动服务运行读文件时,忽略文了my . cnf中所做件,那是因的为my . cnf中所做文件权限有问题,MySQL会认为该文件有危险不会执行。但是MySQL还会启动成功,但如果下面配置从服务器参数修文改my . cnf中所做件的时候,你会发现文件改过了,但是重启服务时,修改过后的配置没有执行,而且您一列表下MySQL的文件夹下会发现很多.my.cnf.swp等中间文件。这都是因为MySQL启动时没有读的取my . cnf中所做原因。这时只要的将my . cnf中所做文件权限改成my_new.cnf的权限一样就好,命令:chmod就好

644 my . cnf中所做   

利用MySQL主从配置实现读写分离减轻数据库压力

  

(4) Ubuntu中修改文档内容没有活力,最好把Vim装上,apt-get安装Vim,不然估计会抓狂。

  

这时候我相信MySQL应该安装上去了。

  

<强> 2,配置主主服务器

  

(1)在主MySQL上创建一个用户repl,并允许其他奴隶服务器可以通过远程访问主人,通过该用户读取二进制日志,实现数据同步。

  

利用MySQL主从配置实现读写分离减轻数据库压力

  

(2)找到MySQL安装文件夹修改my.Ini文件.mysql中有好几种日志方式,这不是今天的重点。我们只要启动二进制日志log-bin就好。

  

,在(mysqld)下面增加下面几行代码

  

利用MySQL主从配置实现读写分离减轻数据库压力

  

(3)查看日志

        mysql>显示主状态;   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +   | |文件位置| Binlog_Do_DB | Binlog_Ignore_DB |   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +   | master-bin。000001 | | 1285 | |   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +   1行集(0.00秒)      

重启MySQL服务

  

<强> 3,配置奴隶从服务器(windows)

  

(1)找到MySQL安装文件夹修改my.ini文件,在(mysqld)下面增加下面几行代码

  

利用MySQL主从配置实现读写分离减轻数据库压力

利用MySQL主从配置实现读写分离减轻数据库压力