zoukankan      html  css  js  c++  java
  • 使用Atlas实现MySQL读写分离

    1、MySQL所在机器

      192.168.29.128(Master)

      192.168.29.129(Slave)

      配置好主从同步,参考 http://www.cnblogs.com/luxh/p/4088420.html

    2、下载安装Atlas

      https://github.com/Qihoo360/Atlas/releases

      注意操作系统的版本,安装相应版本的Atlas。我下载的是Atlas-2.2.el6.x86_64.rpm

      这里直接安装到192.168.29.130这台机器上。

    rpm -i Atlas-2.2.el6.x86_64.rpm 
    

    3、配置Atlas

      Atlas的安装目录是 /usr/local/mysql-proxy,进入安装目录下conf目录,编辑test.cnf文件,很多选项用默认值即可。

      1)主库的ip和端口,可设置多项,用逗号分隔

    proxy-backend-addresses = 192.168.29.128:3306
    

      2)(非必备,根据实际情况配置)从库的IP和端口,@后面的数字代表权重,用来作负载均衡,若省略则默认为1,可设置多项,用逗号分隔。如果想让主库也能分担读请求的话,只需要将主库信息加入到下面的配置项中。

    proxy-read-only-backend-addresses = 192.168.29.129:3306
    

      3)(必备,根据实际情况配置)用户名与其对应的加密过的MySQL密码,密码使用安装路径 /bin目录下的加密程序encrypt加密,用户名与密码之间用冒号分隔。主从数据库上需要先创建该用户并设置密码(用户名和密码在主从数据库上要一致)。

      加密密码:

    ./encrypt 123456
    

         配置密码

    pwds = root:/iZxz+0GRoA=
    

      4)(必备,默认值即可)Atlas的运行方式,设为true时为守护进程方式,设为false时为前台方式,一般开发调试时设为false,线上运行时设为true

    daemon = true
    

      5)(必备,默认值即可)Atlas监听的工作接口IP和端口,proxy-address = 0.0.0.0:1234代表客户端应该使用1234这个端口连接Atlas来发送SQL请求。

    proxy-address = 0.0.0.0:1234
    

      6)(必备,默认值即可)Atlas监听的管理接口IP和端口,admin-address = 0.0.0.0:2345代表DBA应该使用2345这个端口连接Atlas来执行运维管理操作。

    admin-address = 0.0.0.0:2345
    

      7)(可选项,可不设置)默认字符集,若不设置该项,则默认字符集为latin1

    charset = utf8
    

      8)(必备,根据实际情况配置)SQL日志的开关,可设置为OFF、ON、REALTIME,OFF代表不记录SQL日志,ON代表记录SQL日志,该模式下日志刷新是基于缓冲区的,当日志填满缓冲区后,才将日志信息刷到磁盘。REALTIME用于调试,代表记录SQL日志且实时写入磁盘,默认为OFF

    sql-log = REALTIME
    

       日志路径在 /usr/local/mysql-proxy/log 下

    4、运行Atlas

      进入/usr/local/mysql-proxy/bin目录,执行下面的命令启动、重启或停止Atlas。

     ./mysql-proxyd test start,启动Atlas。
    
     ./mysql-proxyd test restart,重启Atlas。
    
     ./mysql-proxyd test stop,停止Atlas。
    

      启动:

    [root@Luxh-01 bin]# ./mysql-proxyd test start
    OK: MySQL-Proxy of test is started
    [root@Luxh-01 bin]# 
     注意:

      (1). 运行文件是:mysql-proxyd(不是mysql-proxy)。

      (2). test是conf目录下配置文件的名字,也是配置文件里instance项的名字,三者需要统一。

      (3). 可以使用ps -ef | grep mysql-proxy查看Atlas是否已经启动或停止。

    5、连接

      客户端使用刚才配置的Atlas监听端口连接到Atlas代理服务

    [root@Luxh-03 ~]# mysql -h192.168.29.130 -P1234 -uroot -p123456
    

       执行sql进行测试,可以通过日志看到写操作都在Master,读操作都连接到Slave了

      连接到管理端口

    [root@Luxh-03 conf]# mysql -h192.168.29.130 -P2345 -uuser -ppwd
    

      进入后执行:select * from help;查看管理DB的各类命令。

  • 相关阅读:
    【GoLang】GoLang map 非线程安全 & 并发度写优化
    【IDEA】IDEA 如何设置编辑器字体大小
    【GoLang】GoLang fmt 占位符详解
    转头条:阿里p7架构师:三年经验应该具备什么样的技能?
    RPC与RMI的区别
    为什么使用消息队列,为什么使用RabbitMQ、springAMQP
    cookie的安全性问题
    solr与mysql数据同步的方案
    springcloud与dubbo对比:
    mybatis与分布式事务的面试
  • 原文地址:https://www.cnblogs.com/csd97/p/6628922.html
Copyright © 2011-2022 走看看