应用MySQL主从配置实现读写别离减轻数据库压力
大型网站为了软解大量的并发访问,除了在网站实现散布式负载平衡,远远不足。到了数据业务层、数据访问层,要是还是传统的数据构造,或者只是单单靠一台服务器扛,如此多的数据库连贯操纵,数据库必然会解体,数据遗失的话,后果更是 不堪设想。这时候,我们会考虑怎样减少数据库的联接,一方面采纳优良的代码框架,进行代码的优化,采纳优良的数据缓存技术如:memcached,要是资金丰盛的话,必然会想到假如服务器群,来分担主数据库的压力。Ok切入今天文章主题,应用MySQL主从配置,实现读写别离,减轻数据库压力。这种方式,在如今许多网站里都有运用,也不是什么新颖事情,今天总结一下,利便大家学习参考一下。
概述:搭设一台Master服务器(win8.1系统,Ip:192.168.0.104),搭设两台Slave服务器(虚拟机——一台Ubuntu,一台 Windows Server 2003)
道理:主服务器(Master)负责网站NonQuery操纵,从服务器负责Query操纵,会员可以依据网站功能模特性块牢固访问Slave服务器,或者本人写个池或队列,自在为请求分配从服务器连贯。主从服务器应用MySQL的二进制日志文件,实现数据同步。二进制日志由主服务器发生,从服务器相应获取同步数据库。
具体实现:
1、在主从服务器上都装上MySQL数据库,windows系统鄙人安装的是mysql_5.5.25.msi版本,Ubuntu安装的是mysql-5.6.22-linux-glibc2.5-i686.tar
windows安装mysql就不谈了,个别地球人都应当会。鄙人略微说一下Ubuntu的MySQL安装,我倡议不要在线下载安装,还是离线安装的好。大家可以参考 https://www.jb51.net/article/157282.htm 这位不晓得大哥还是姐妹,写的挺好按照这个就能装上。在安装的时候可能会涌现几种现象,大家可以参考解决一下:
(1)要是您不是运用root会员登录,倡议 su - root 切换到Root会员安装,那就不用老是 sudo 了。
(2)寄存解压的mysql 文件夹,文件夹名字最佳改成mysql
(3)在./support-files/mysql.server start 启动MySQL的时候,可能会涌现一个告诫,中辞意思是启动服务运转读文件时,忽略了my.cnf文件,那是由于my.cnf的文件权限有题目,mysql会以为该文件有惊险不会施行。但是mysql还会启动成功,但要是下面配置从服务器参数修改my.cnf文件的时候,你会发明文件改正了,但是重启服务时,修改正后的配置没有施行,而且您 list一下mysql的文件夹下会发明许多.my.cnf.swp等中间文件。这都是由于MySQL启动时没有读取my.cnf的缘由。这时只有将my.cnf的文件权限改成my_new.cnf的权限同样就Ok,下令:chmod 644 my.cnf就Ok
(4)Ubuntu中修改文档内容没有Vim,最佳把Vim 装上,apt-get install vim,不然预计会抓狂。
这时候我信赖MySQL应当安装上去了。
2、配置Master主服务器
(1)在Master MySQL上创建一个会员‘repl',并允许其他Slave服务器可以通过长途访问Master,通过该会员读取二进制日志,实现数据同步。
(2)找到MySQL安装文件夹修改my.Ini文件。mysql中有好几种日志方式,这不是今天的重点。我们只有启动二进制日志log-bin就ok。
在[mysqld]下面添加下面几行代码
(3)查看日志
mysql> SHOW MASTER STATUS; +-------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +-------------------+----------+--------------+------------------+ | master-bin.000001 | 1285 | | | +-------------------+----------+--------------+------------------+ 1 row in set (0.00 sec)
重启MySQL服务
3、配置Slave从服务器(windows)
(1)找到MySQL安装文件夹修改my.ini文件,在[mysqld]下面添加下面几行代码
重启MySQL服务
(2)连贯Master
change master to master_host='192.168.0.104', //Master 服务器Ip master_port=3306, master_user='repl', master_password='mysql', master_log_file='master-bin.000001',//Master服务器发生的日志 master_log_pos=0;
(3)启动Slave
start slave;
4、Slave从服务器(Ubuntu)
(1)找到MySQL安装文件夹修改my.cnf文件,vim my.cnf
(2) ./support-files/myql.server restart 重启MySQL服务 , ./bin/mysql 进入MySQL下令窗口
(3)连贯Master
change master to master_host='192.168.0.104', //Master 服务器Ip master_port=3306, master_user='repl', master_password='mysql', master_log_file='master-bin.000001',//Master服务器发生的日志 master_log_pos=0;
(4)启动Slave
start slave;
OK所有配置都完成了,这时候大家可以在Master Mysql 中进行测试了,由于我们监视的时Master mysql 所有操纵日志,所以,你的任何转变主服务器数据库的操纵,都会同步到从服务器上。创建个数据库,表试试吧。。
总结
以上就是这篇文章的全部内容了,但愿本文的内容对大家的学习或者工作拥有一定的参考学习价值,感谢大家对脚本之家的支撑。要是你想理解更多相干内容请查看下面相干链接