随着用户量的增多,数据库操作往往会成为一个系统的瓶颈所在,因此我们可以通过实现数据库的读写分离来提高系统的性能。

通过设置主从数据库实现读写分离,主库负责“写”操作,从库负责“读”操作,根据压力情况,从库可以部署多个已提高“读”的速度,借此来提高系统总体的性能。

要实现读写分离,就要解决主从数据库数据同步的问题,在主数据库写入数据后要保证从数据库的数据也要更新。

主服务器(master)记录数据库操作日志到二进制日志(Binary log),从服务器开启i/o线程将二进制日志记录的操作同步到relay log中继日志(存在从服务器的缓存中),另外sql线程将relay log(中继日志)记录的操作在从服务器执行。 
记住这张图,接下来基于这个图实际设置主从数据库。

首先要有两个数据库服务器master(主库)、slave(从库)(也可以用一个服务器安装两套数据库环境运行在不同端口,slave也可以举一反三设置多个)。以下操作假设你的两台服务器上都已经安装好了mysql服务。

1.打开mysql数据库配置文件

vim /etc/my.cnf

2.在主服务器master上配置开启Binary log,主要是在[mysqld]下面添加:

#日志文件名

log-bin = mysql-bin

#主数据库端ID号

server-id = 1

3.重启mysql,并创建用于同步的账户

service mysqld restart

 

# 创建slave从库帐号slave_account,密码123456
mysql>grant replication slave on *.* to 'slave_account'@'从库ip' identified by '123456'; # 更新数据库权限
mysql>flush privileges;

  

4.检查配置效果,进入主数据库并执行

mysql> SHOW MASTER STATUS;

注:执行完这个步骤后不要再操作主数据库了,防止主数据库状态值变化

5.配置从服务器的 my.cnf

在[mysqld]节点下面添加:

server-id = 2

这里面的server-id 一定要和主库的不同。

6.重启从数据库

service mysql restart

7.执行同步命令(进入从数据库执行)

mysql>change master to master_host='主库ip',master_port=端口号,master_user='slave_account',master_password='123456',master_log_file='mysql-bin.000003',master_log_pos=9049;

8.开启同步

mysql> start slave;

  

检查从数据库状态

  

mysql > show slave status \G

  

Slave_IO_Running及Slave_SQL_Running进程必须正常运行,即YES状态,否则说明同步失败。

接下来在主库的操作,在从库都会执行了。我们可以主库负责写,从库负责读,达到读写分离的效果。

最新文章

  1. ItextDemo<二>
  2. 获取本地soapUI项目路径
  3. AngularJS快速入门指南11:事件
  4. IOS项目集成ShareSDK实现第三方登录、分享、关注等功能。
  5. servlet请求转发、包含以及重定向
  6. magic Ajax使用以及注意事项
  7. SSM 使用方法
  8. [RM 状态机详解2] RMAppAttempt状态机详解
  9. Search a 2D Matrix leetcode
  10. php详细学习1
  11. [算法]浅谈求n范围以内的质数(素数)
  12. Ubuntu安装VLC播放器
  13. Ubuntu每次启动都显示System program problem detected
  14. flask之分页插件的使用、添加后保留原url搜索条件、单例模式
  15. 用python写个简单的小程序,编译成exe跑在win10上
  16. thinkphp 3.2 加载第三方库 第三方命名空间库
  17. AngularJS之jeDate日期控件基本使用
  18. Java 的Integer、int与new Integer到底怎么回事?
  19. protobuf's custom-options
  20. vue组件编写知识点

热门文章

  1. 转:ITopologicalOperator Buffer调用异常的解决方法(来源网络)
  2. SharePoint 2013 - Client Side Rendering
  3. vs2010的帮助文档
  4. Android SDK 目录和作用详解
  5. SharePoint Config database Log file too big – reduce it!
  6. 【Leetcode】【Easy】Remove Duplicates from Sorted Array
  7. 初次接触《C++程序设计原理与实践》一书
  8. 【转】Js中Prototype、__proto__、Constructor、Object、Function关系介绍
  9. POJ Widget Factory 【求解模线性方程】
  10. POJ 1681 Painter's Problem 【高斯消元 二进制枚举】