• Mysql 之主从复制,mysql-proxy读写分离


    准备两台mysql服务器,master(192.168.43.64)、slave(192.168.84.129)

    master配置:

    log-bin=mysql-bin
    binlog_format=mixed
    server_id=1
    binlog_checksum=none

    slave配置:

    然后给master授权并查看二进制文件名称和位置:

    进入从服务器执行如下sql并开启slave、查看slave状态:

    change master to  master_host='192.168.43.64' ,master_user='root' ,master_password='123' ,master_log_file='mysql-bin.000032' ,master_log_pos=1912;

    最后验证主从配置:

     问题总结:

      1、两个主从mysql要能远程登录,否则相互无法配置成功。

      2、由于mysql5以前有binlog-checksum,导致主从配置失败,在配置文件中加binlog_checksum=none后重启mysql服务。

        

    读写分离的实现:

    下载mysql-proxy,安装缺少的vc库,在mysql-proxy文件夹中创建mysql-proxy.cnf配置文件。如下所示:

    [mysql-proxy]
    admin-username=root
    admin-password=root
    admin-lua-script=D:/BtSoft/WebSoft/mysql-proxy/lib/mysql-proxy/lua/admin.lua
    proxy-backend-addresses=192.168.43.64:3306
    proxy-read-only-backend-addresses=192.168.84.129:3306
    proxy-lua-script=D:/BtSoft/WebSoft/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua
    log-file=D:/BtSoft/WebSoft/mysql-proxy/mysql-proxy.log
    log-level=debug
    daemon=true
    keepalive=true

    参数介绍如下:

       admin-username:用于中间件连接的用户,这里我还是用root偷懒
       admin-password:同上用户密码
       admin-lua-script:根据存放的文件位置自行调整
       proxy-backend-addresses:主库服务器+端口
       proxy-read-only-backend-addresses:从库服务器+端口,多个从库用,隔开    
       proxy-lua-script:根据存放的文件位置自行调整
       log-file:日志文件存放位置,如果你指定了一个路径,请确保手动创建了对应的文件夹,否则会报错
       log-level:日志级别
       daemon:以守护进程方式运行
       keepalive:长连接

    修改rw-splitting.lua中的4改为1,#默认超过4个连接数时,才开始读写分离

    if not proxy.global.config.rwsplit then
        proxy.global.config.rwsplit = {
            min_idle_connections = 1,
            max_idle_connections = 8,
            is_debug = false
        }
    end

     打开cmd输入命令:

    D:BtSoftWebSoftmysql-proxyinmysql-proxy -P 192.168.43.64:4040 --defaults-file=D:BtSoftWebSoftmysql-proxymysql-proxy.conf

    执行结果:

    出现上图则说明mysql-proxy配置成功。

    验证是否成功读写分离:

    1.连接mysql-proxy

    插入一条数据到mysql-proxy中,如图

    在从服务器查看,如图:

  • 相关阅读:
    servlet中如何实现通过Spring实现对象的注入
    异步Socket
    JAVA NIO实现
    【Java并发】
    JAVA实现阻塞队列
    lock与synchronized比较
    线程执行顺序
    ConcurrentHashMap 1.8
    LeetCode 416 分割等和子集
    linux常用指令
  • 原文地址:https://www.cnblogs.com/yang-2018/p/10336187.html
Copyright © 2020-2023  润新知