Atlas是由 Qihoo 360公司Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基础上,修改了大量bug,添加了很多功能特性。目前该项目在360公司内部得到了广泛应用,很多MySQL业务已经接入了Atlas平台,每天承载的读写请求数达几十亿条。同时,有超过50家公司在生产环境中部署了Atlas,超过800人已加入了我们的开发者交流群,并且这些数字还在不断增加。

github地址
介绍

一、安装

安装

在安装之前, 服务器上必须要装有mysql, altas会用到mysql的组件。

在启动时, 可能提示faild start altas of test之类的信息, 解决方法如下

echo '/usr/local/mysql/lib/' >> /etc/ld.so.conf
ldconfig

二、配置说明

[mysql-proxy](必备,默认值即可)管理接口的用户名
admin-username = user(必备,默认值即可)管理接口的密码
admin-password = pwd(必备,根据实际情况配置)主库的IP和端口
proxy-backend-addresses = 192.168.0.12:3306(非必备,根据实际情况配置)从库的IP和端口,@后面的数字代表权重,用来作负载均衡,若省略则默认为1,可设置多项,用逗号分隔。如果想让主库也能分担读请求的话,只需要将主库信息加入到下面的配置项中。
proxy-read-only-backend-addresses = 192.168.0.13:3306,192.168.0.14:3306(必备,根据实际情况配置)用户名与其对应的加密过的MySQL密码,密码使用PREFIX/bin目录下的加密程序encrypt加密,用户名与密码之间用冒号分隔。主从数据库上需要先创建该用户并设置密码(用户名和密码在主从数据库上要一致)。比如用户名为myuser,密码为mypwd,执行./encrypt mypwd结果为HJBoxfRsjeI=。如果有多个用户用逗号分隔即可。则设置如下行所示:
pwds = myuser: HJBoxfRsjeI=,myuser2:HJBoxfRsjeI=(必备,默认值即可)Atlas的运行方式,设为true时为守护进程方式,设为false时为前台方式,一般开发调试时设为false,线上运行时设为true
daemon = true(必备,默认值即可)设置Atlas的运行方式,设为true时Atlas会启动两个进程,一个为monitor,一个为worker,monitor在worker意外退出后会自动将其重启,设为false时只有worker,没有monitor,一般开发调试时设为false,线上运行时设为true
keepalive = true(必备,根据实际情况配置)工作线程数,推荐设置成系统的CPU核数的2至4倍
event-threads = 4(必备,默认值即可)日志级别,分为message、warning、critical、error、debug五个级别
log-level = message(必备,默认值即可)日志存放的路径
log-path = /usr/local/mysql-proxy/log(必备,根据实际情况配置)SQL日志的开关,可设置为OFF、ON、REALTIME,OFF代表不记录SQL日志,ON代表记录SQL日志,该模式下日志刷新是基于缓冲区的,当日志填满缓冲区后,才将日志信息刷到磁盘。REALTIME用于调试,代表记录SQL日志且实时写入磁盘,默认为OFF
sql-log = OFF(可选项,可不设置)慢日志输出设置。当设置了该参数时,则日志只输出执行时间超过sql-log-slow(单位:ms)的日志记录。不设置该参数则输出全部日志。
sql-log-slow = 10(可选项,可不设置)关闭不活跃的客户端连接设置。当设置了该参数时,Atlas会主动关闭经过'wait-timeout'时间后一直未活跃的连接。单位:秒
wait-timeout = 10(必备,默认值即可)Atlas监听的工作接口IP和端口, 连接altas的地址
proxy-address = 0.0.0.0:1234(必备,默认值即可)Atlas监听的管理接口IP和端口 admin-address = 0.0.0.0:2345, 连接altas管理服务的地址(可选项,可不设置)分表设置,此例中person为库名,mt为表名,id为分表字段,3为子表数量,可设置多项,以逗号分隔,若不分表则不需要设置该项,子表需要事先建好,子表名称为表名_数字,数字范围为[0,子表数-1],如本例里,子表名称为mt_0、mt_1、mt_2
tables = person.mt.id.3(可选项,可不设置)默认字符集,若不设置该项,则默认字符集为latin1
charset = utf8(可选项,可不设置)允许连接Atlas的客户端的IP,可以是精确IP,也可以是IP段,以逗号分隔,若不设置该项则允许所有IP连接,否则只允许列表中的IP连接
client-ips = 127.0.0.1, 192.168.1(可选项,极少需要)Atlas前面挂接的LVS的物理网卡的IP(注意不是虚IP),若有LVS且设置了client-ips则此项必须设置,否则可以不设置
lvs-ips = 192.168.1.1

三、Altas管理

执行mysql -h127.0.0.1 -uuser -ppwd -P2345进行连接, 进入altas管理

1. 查询帮助

select * from help;+----------------------------+---------------------------------------------------------+
| command                    | description                                             |
+----------------------------+---------------------------------------------------------+
| SELECT * FROM help         | 显示帮助                                        |
| SELECT * FROM backends     | 查看后端服务器状态                 |
| SET OFFLINE $backend_id    | 下线后端服务器, $backend_id is backend_ndx's id |
| SET ONLINE $backend_id     | 上线后端服务器, ...                              |
| ADD MASTER $backend        | 添加主服务器, example: "add master 127.0.0.1:3306", ...               |
| ADD SLAVE $backend         | 添加从服务器, example: "add slave 127.0.0.1:3306", ...                |
| REMOVE BACKEND $backend_id | 移除后端服务器example: "remove backend 1", ...                        |
| ADD CLIENT $client         | 添加客户端 example: "add client 192.168.1.2", ...                  |
| REMOVE CLIENT $client      | 移除客户端example: "remove client 192.168.1.2", ...               |
| SAVE CONFIG                | 保存配置到文件                         |
+----------------------------+---------------------------------------------------------+

2. 查看后端mysql状态信息

mysql> select * from backends-> ;
+-------------+-------------------+-------+------+
| backend_ndx | address           | state | type |
+-------------+-------------------+-------+------+
|           1 | 10.211.55.9:3306  | up    | rw   |
|           2 | 10.211.55.10:3306 | up    | ro   |
+-------------+-------------------+-------+------+
2 rows in set (0.00 sec)

3. 下线mysql服务器

mysql> set offline 2-> ;
+-------------+-------------------+---------+------+
| backend_ndx | address           | state   | type |
+-------------+-------------------+---------+------+
|           2 | 10.211.55.10:3306 | offline | ro   |
+-------------+-------------------+---------+------+
1 row in set (0.00 sec)

4. 上线mysql服务器

mysql> set online 2;
+-------------+-------------------+---------+------+
| backend_ndx | address           | state   | type |
+-------------+-------------------+---------+------+
|           2 | 10.211.55.10:3306 | unknown | ro   |
+-------------+-------------------+---------+------+
1 row in set (0.00 sec)

转载于:https://blog.51cto.com/a3147972/2094167

mysql-atlas安装及使用教程相关推荐

  1. MySQL的安装及使用教程

    MySQL的安装及使用教程 一.  MySQL的下载及安装 首先登陆MySQL的官网,选择Downloads→Windows→MySQL Installer→Windows(x86,32-bit),M ...

  2. Mysql 8.0安装 Navicat for MySQL 下载安装及使用教程

    Mysql 8.0安装 & Navicat for MySQL 下载安装及使用教程 MySQL 8.0 安装配置方法教程 安装: 1.官网下载zip 2.解压,复制到指定目录.新建data文件 ...

  3. 欢迎使用Windows安装MySQL(安装版)教程,全网最细

    Windows10下安装MySQL8.0(.msi安装版)详细教程 文章背景 安装过程遇到的问题 废话不多说,接下来我们就进行详细演示 一.MySQL8.0安装包的准备 二.进行安装操作 1.安装前要 ...

  4. MySQL免安装版配置教程

    配置免安装版 MySQL 的具体操作步骤如下: 步骤 1):将 MySQL 免安装压缩文件解压到一个文件夹,如 D:mysql-5.7.20-winx64,如图所示. 步骤 2):配置环境变量,在系统 ...

  5. Linux基础学习七:mysql的安装和配置教程

    MySQL的安装 yum安装 下载并安装MySQL5.7的yum源 [root@localhost ~]# wget -P /tmp https://dev.mysql.com/get/mysql57 ...

  6. 【精】MySQL免安装版详细教程

    转载自这里 但对其错误的地方进行了修正 第一步:下载Mysql 官网下载地址:https://dev.mysql.com/downloads/mysql/ 1.鼠标滑下来,找到Other Downlo ...

  7. mysql管理应用小工具mysql front安装与使用教程

    mysql front一款小巧的管理Mysql的应用工具,那么这个工具该如何安装和使用呢?一起来看看吧. 更加详细的内容 点我学 一.mysql front下载: mysql front下载地址: 二 ...

  8. MySQL 免安装版配置教程

    配置免安装版 MySQL 的具体操作步骤如下: 步骤 1):将 MySQL 免安装压缩文件解压到一个文件夹,如 D:\mysql-5.7.20-winx64\,如图所示. 步骤 2):配置环境变量,在 ...

  9. centos得mysql安装教程_Centos下MySQL的安装及配置教程

    本文作者以初学者身份,和读者一起学习,最终达到通过阅读此文后,能灵活运用linux下mysql.环境Centos6.3 卸载掉原有mysql并安装和设置新mysql 因为mysql数据库在Linux上 ...

  10. MySQL下载安装配置完整教程(详细流程)

    一.首先附上MySQL官网连接 MySQL官网超链接 二.点击图片中圈出的地方(DOWNLOADS) 三.鼠标下拉到最下面点击MySQL Community(GPL) DOWNLOADS 四.点击圈出 ...

最新文章

  1. 电脑安装pandas报错_python3.8下如何解决pandas报错No module named '_bz2'问题
  2. C++11之右值引用(三):使用C++11编写string类以及“异常安全”的=运算符
  3. ORA-12518 TNS:监听程序无法分发客户机连接 解决办法
  4. MFC/VC++中怎样设置位图按钮并且位图不会覆盖文字——–位图按钮
  5. 北大学霸:高考有漏洞可钻,学会套路,立马提分,屡试不爽!
  6. java导_java——导入功能
  7. Oracle9i数据库DataGuard实施及维护手册3
  8. doc转docx文件会乱吗_【转】帮你解决docx转换为doc文档的乱码问题
  9. Java开发笔记(一百四十五)FXML布局的伸展适配
  10. Unity3D中脚本的执行顺序和编译顺序
  11. paip.提升ASP编程安全性之脚本部件
  12. 数学建模1---基本方法和步骤
  13. 一、首页、详情页、文章编辑页制作《iVX低代码/无代码个人博客制作》
  14. 一图看清美国最具前景的50家人工智能公司
  15. 使用整数除法获得商c语言,C语言练习题答案
  16. MySql 磁盘满了的处理
  17. sql是什么mysql是什么意思_sql是什么意思
  18. 听dalao讲课 7.26
  19. html中加入emjio表情,html与emoji表情,
  20. 潮流品牌TakiTaki 定义年轻人的新潮流

热门文章

  1. Oracle大数据量分页通用存储过程
  2. 【vue】.native给组件绑定原生事件
  3. “全能”选手—Django 1.10文档中文版Part2
  4. jQuery 设置select默认选中问题
  5. 穷大学生耍了三大花招成为大富翁!
  6. MySQL5.7.11免安装版的安装和配置以及解决MYSQL服务无法启动问题
  7. 北京电子科技学院计算机专业,北京电子科技学院计算机技术怎么样
  8. 全国计算机等级考试 简称NCRE,长春大学2018年下半年全国计算机等级考试(简称NCRE)招生简章...
  9. android ios 上传图片到服务器,.net 接收ios, android的上传图片
  10. python类的静态属性和静态方法_详解Python中的静态方法与类成员方法