千家信息网

mysql-atlas安装及使用教程

发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,Atlas是由 Qihoo 360公司Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基础上,修改了大量bug
千家信息网最后更新 2025年11月09日mysql-atlas安装及使用教程

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.confldconfig

二、配置说明

[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,线上运行时设为truedaemon = true(必备,默认值即可)设置Atlas的运行方式,设为true时Atlas会启动两个进程,一个为monitor,一个为worker,monitor在worker意外退出后会自动将其重启,设为false时只有worker,没有monitor,一般开发调试时设为false,线上运行时设为truekeepalive = 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日志且实时写入磁盘,默认为OFFsql-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_2tables = person.mt.id.3(可选项,可不设置)默认字符集,若不设置该项,则默认字符集为latin1charset = 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 -h227.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)

日志 服务 服务器 配置 密码 用户 管理 可不 实际 情况 用户名 代表 信息 客户 接口 数字 方式 端口 逗号 开发 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发 广东好还是深圳好 徐汇区上门软件开发代理品牌 汽车零部件软件开发标准 软件开发本科毕业设计 eve怎么选择服务器 软件开发项目管理松弛时间 莱阳软件开发解决方案 服务器安装git后如何访问页面 北京市艾利艾互联网科技有限公司 单位网络安全领导小组职责 西藏物流erp软件开发 哈尔滨市网络安全和信息化委员会 服务器更换内存后初始化 python的数据库使用 网络安全中的不可否认是什么 直接删除代理服务器怎么操作 昆明高密度存储服务器联系电话 服务器电源开关电路图 网络安全专业的年薪待遇 服务器计划书 网络技术和动漫技术哪个好 体感拍照软件开发 杭州师范大学网络安全考研 金华软件开发外包 理科差的能学软件开发吗 网络安全法律师咨询 南京网络安全方案 无法连接服务器10023 网络安全及金融风险问题分析 数据库er图合并
0