zoukankan      html  css  js  c++  java
  • Mysql读写分离,主从同步实现

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

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

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

    主服务器(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状态,否则说明同步失败。

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

     

  • 相关阅读:
    HDU 5492 Find a path
    codeforce gym 100548H The Problem to Make You Happy
    Topcoder SRM 144 Lottery
    codeforce 165E Compatible Numbers
    codeforce gym 100307H Hack Protection
    区间DP总结
    UESTC 1321 柱爷的恋爱 (区间DP)
    HDU 4283 You Are the One (区间DP)
    HDU 2476 String painter (区间DP)
    UESTC 426 Food Delivery (区间DP)
  • 原文地址:https://www.cnblogs.com/qichao123/p/10677085.html
Copyright © 2011-2022 走看看