360公司开源Atlas快速上手安装配置

时间:2023-01-08 04:08:36

机器系统Centos6.5


下载atlas的rpm包下载地址https://github.com/Qihoo360/Atlas/releases ,因为不涉及跨机器分表,所以,版本采用

Atlas-2.2.1


下载Atlas-2.2.1.el6.x86_64.rpm (centos6),注:centos5请下载Atlas-2.2.1.el5.x86_64.rpm(centos5)
安装
rpm  -i  Atlas-2.2.1.el6.x86_64.rpm 

安装路径/usr/local/mysql-proxy

配置 
#配置atlas的用户名
admin-username = user

#配置atlas的密码
admin-password = pwd#admin-lua-script = /usr/local/mysql-proxy/lib/mysql-proxy/lua/admin.lua#配置mysql的地址和端口proxy-backend-addresses = 127.0.0.1:3306配置从节点的mysql地址,本文不涉及#proxy-read-only-backend-addresses = 127.0.0.1:3305@1#配置mysql的用户名和密码 密码采用/usr/loca/mysql-proxy/bin/encrypt加密pwds = root:DAJnl8cVzy8=#Atlas的运行方式设为true时为守护进程方式,设为false时为前台方式daemon = false#设置Atlas的运行方式,设为true时Atlas会启动两个进程,一个为monitor,一个worker,monitor在worker意外退出后自动将其重启,设为false时只有worker,没有monitorkeepalive = false#工作线程数,推荐设置成系统的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 = ON#sql-log-slow = 10instance = test#Atlas监听的工作接口IP和端口proxy-address = 0.0.0.0:1234#Atlas监听的管理接口IP和端口admin-address = 0.0.0.0:2345#分表设置,此例中person为库名,mt为表名,id为分表字段,3为子表数量,可设置多项,以逗号分隔,若不分表则不需要设置#该项,子表需要事先#建好,子表名称为表名_##数字,数字范围为[0,子表数-1],如本例里,子表名称为mt_0、mt_1、mt_2tables = iaf.user.id.3#charset = utf8#client-ips = 127.0.0.1, 192.168.1</span>
启动:

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

(1). sudo ./mysql-proxyd test start,启动Atlas。

(2). sudo ./mysql-proxyd test restart,重启Atlas。

(3). sudo ./mysql-proxyd test stop,停止Atlas。

注意:

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

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

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


执行命令:mysql -h127.0.0.1 -P1234 -u用户名 -p密码,如果能连上则证明Atlas初步测试正常,可以再尝试发几条SQL语句看看执行结果是否正确。(用户名和密码为mysql的用户名和密码),多插入几条数据就发现可以插入不同的子表了

例如:

以id切分数据,在查询的时候除非where条件后有id条件,不然出不出来,这样就不能使用关联查询了。

select * from user where id =1   //这样可以查询

select * from user inner join partment on user.id =partment.user_id where user.id =1  //这样查询不出结果 

所以,我觉得局限性还是挺大的

进入Atlas的管理界面的命令:mysql -h127.0.0.1 -P2345 -uuser -ppwd,进入后执行:select * from help;查看管理DB的各类命令(用户名user 密码pwd 为配置文件中配置的admin-username,admin-password