美文网首页
读写分离

读写分离

作者: ivan_cq | 来源:发表于2018-09-26 13:12 被阅读0次

    数据库读写分离的配置
    (一).在server1和server2上做主从复制
    server1是master,server2是slave
    (二).在server3上做mysql-proxy(调度器)
    解压proxy数据包,并将解压后的目录放在/usr/local下
    tar zxf mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz
    mv mysql-proxy-0.8.5-linux-el6-x86-64bit /usr/local/mysql-proxy
    建立目录存放读写分离的配置文件和日志
    cd /usr/local/mysql-proxy/
    mkdir conf
    mkdir logs


     vim mysql-proxy.conf  mysql-proxy --help-all   
    [mysql-proxy]
    user=root                               # proxy运行的用户身份
    proxy-address=0.0.0.0:3306              # proxy监听本机所有接口
    proxy-backend-addresses=172.25.1.1:3306              # 后端master(读写)主机
    proxy-read-only-backend-addresses=172.25.1.2:3306    # 后端slave(读)主机
    proxy-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua    # lua脚本所在的位置
    log-level=debug     
    daemon=true
    keepalive=true
    

    将mysql-proxy的二进制命令放进系统环境变量中

    vim ~/.bash_profile
    /usr/local/mysql-proxy/bin
    source ~/.bash_profile
    

    实现读写分离是有lua脚本实现的,现在mysql-proxy里面已经集成,无需再安装

    cd /usr/local/mysql-proxy/share/doc/mysql-proxy
    vim rw-splitting.lua   # 修改数据库发生读写分离时的最大最小值
    
    mysql-proxy --default-file=/usr/local/mysql-proxy/conf/mysql-proxy.conf
    

    在server1(master)上对某个用户授读和插入权限

    grant all  on *.* to root@'%' identified by 'Hellojay123+';
    

    在另外一台主机上通过调度器server3连接数据库
    在server1和server2上安装连接查看 yum install lsof lsof -i:3306 (3306是数据库的端口)



    通过外界连接第三次数据库时发生读写分离,此时插入数据是向master中插入数据,读是在slave上.
    第三次连接数据库时发生读写分离,读数据在server2上,写数据在server1上:



    向数据库中写入数据:

    相关文章

      网友评论

          本文标题:读写分离

          本文链接:https://www.haomeiwen.com/subject/nzxsbftx.html