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的各类命令。

  

使用Atlas实现MySQL读写分离的更多相关文章

  1. 使用Atlas实现MySQL读写分离+MySQL-(Master-Slave)配置

    参考博文: MySQL-(Master-Slave)配置  本人按照博友北在北方的配置已成功  我使用的是 mysql5.6.27版本. 使用Atlas实现MySQL读写分离 数据切分——Atlas读 ...

  2. 基于Atlas实现mysql读写分离

    一.实验环境 主机名IP地址 master192.168.200.111 slave192.168.200.112 atlas192.168.200.113 主从复制不再赘述,链接地址:授权Atlas ...

  3. mysql读写分离总结

    随着一个网站的业务不断扩展,数据不断增加,数据库的压力也会越来越大,对数据库或者SQL的基本优化可能达不到最终的效果,我们可以采用读写分离的策略来改变现状.读写分离现在被大量应用于很多大型网站,这个技 ...

  4. [记录]MySQL读写分离(Atlas和MySQL-proxy)

    MySQL读写分离(Atlas和MySQL-proxy) 一.阿里云使用Atlas从外网访问MySQL(RDS) (同样的方式修改配置文件可以实现代理也可以实现读写分离,具体看使用场景) 1.在跳板机 ...

  5. mysql读写分离实战

    一个完整的MySQL读写分离环境包括以下几个部分: 应用程序client database proxy database集群 在本次实战中,应用程序client基于c3p0连接后端的database ...

  6. 使用Amoeba实现mysql读写分离机制

    Amoeba的实用指南 http://docs.hexnova.com/amoeba/ 如何实现mysql读写分离 : 通常来说有两种方式: 1,应用程序层实现 2,中间件层实现 应用层实现 应用层实 ...

  7. mysql读写分离--一主多从,冗余存储

    转载了https://blog.csdn.net/u013421629/article/details/78793966 https://blog.csdn.net/justdb/article/de ...

  8. mysql读写分离(PHP类)

    mysql读写分离(PHP类) 博客分类: php mysql   自己实现了php的读写分离,并且不用修改程序 优点:实现了读写分离,不依赖服务器硬件配置,并且都是可以配置read服务器,无限扩展 ...

  9. amoeba实现MySQL读写分离

    amoeba实现MySQL读写分离 准备环境:主机A和主机B作主从配置,IP地址为192.168.131.129和192.168.131.130,主机C作为中间件,也就是作为代理服务器,IP地址为19 ...

随机推荐

  1. c/c++面试题(2)

    4.已知String类的原型是: class String { public: String(const char* str = NULL);   //普通的构造函数 String(const Str ...

  2. 后台返回JSON关于日期的格式化

    JSONObject 可以将java对象转换成json格式,用于处理ajax请求或者做app是与前台的交互. 但是Date类型的也会做转换,很多时候我们是不想将日期的年月日分别转换成json的.可以通 ...

  3. 判断CAD图纸版本

    判断CAD图纸版本Dwg文件版本 使用记事本打开DWG图纸文件,在最开始有6个字母和数字组合,即为图纸的版本号 AC1015:CAD2000版本: AC1018:CAD2004版本: AC1021:C ...

  4. CSS第二天总结 更多的选择符

    CSS的选择符非常多,今天继续总结后面的选择符 1.id和class选择符某些情况下我们用关系选择符或者伪类选择符无法选中一些元素时,我们可以给这些元素起 个名字或者分类,这就是id和class属性. ...

  5. eclipse如何导入项目

    链接来自百度经验: 点击打开链接

  6. android技巧(四)数据库跨版本升级写法

    当项目中接手的需求需要在就前数据库数据表做出修改时,不得不面对数据库表结构的更新问题.一般的sqlite数据库更新修改数据库版本号时都会自动调用SqliteOptenHelper及其子类中的onUpg ...

  7. Bellovin_树状数组

    Problem Description Peter has a sequence a1,a2,...,an and he define a function on the sequence -- F( ...

  8. webdriver如何定位多层iframe中元素

    在 web 应用中经常会出现 iframe 嵌套的应用,假设页面上有 A.B 两个 iframe,其中 B 在 A 内,那么定位 B 中的内容则需要先到 A,然后再到 B. iframe 中实际上是嵌 ...

  9. C++资料收集&整理

    类别 地址 ZLib c++ zlib(qt)压缩与解压缩 STL STL学习之map容器(2)_insert Basic std::nothrow new (nothrow) T() 的原理 C++ ...

  10. 自定义滚动条样式(jQuery插件、Webkit、IE)

    -------------jQuery滚动条插件------------- http://manos.malihu.gr/tuts/jquery_custom_scrollbar.html http: ...