• Atlas安装配置


    准备环境

    192.168.1.1(Altas)
    192.168.1.2(MySQL主)
    192.168.1.3(MySQL从)

    官方链接:https://github.com/Qihoo360/Atlas/wiki/Atlas%E7%9A%84%E5%AE%89%E8%A3%85

    主从搭建:http://www.cnblogs.com/cypress/p/8610279.html

    一、配置主从数据库访问连接

    #依次设置主库,从库允许Atlas访问连接
    mysql>GRANT FILE ON *.* TO 'root'@'192.168.1.1' IDENTIFIED BY 'root password';   #创建用户
    
    #或者
    mysql> grant all on *.* to root@'127.0.0.1' identified by "root";  #创建用户
    # 进入数据库
    mysql> use mysql
    # 修改host权限为"%"
    mysql> update user set host = '%' where user = 'root';
    
    以上两种方式任意一种均可
    mysql>select host ,user ,password from mysql.user;  #查看是否修改成功
    mysql>FLUSH PRIVILEGES;   #更新数据库信息,否则需要重启数据库
    

      开启对应端口:http://blog.csdn.net/u011846257/article/details/54707864

    二、安装Atlas

        注意事项:

    (1).Atlas只能安装运行在64位的系统上。

    (2).Centos 5.X安装 Atlas-XX.el5.x86_64.rpm,Centos 6.X安装Atlas-XX.el6.x86_64.rpm。

    (3).如果执行安装rpm -ivh Atlas-2.2.1.el6.x86_64.rpm出现下面错误说明已经安装

    Preparing... ########################################### [100%]
    package Atlas-2.2.1-1.x86_64 is already installed

    使用[root@localhost ~]# rpm -qa|grep Atlas  // 查询出来已安装的Atlas

    [root@localhost ~]# rpm -e --nodeps 文件名  // 卸载Atlas,文件名为上述命令查询出来的文件
    (4).后端mysql版本应大于5.1,建议使用Mysql 5.6
     
    1.下载安装包
    [root@localhost ~]# cd /home/
    [root@localhost home]# wget https://github.com/Qihoo360/Atlas/releases/download/2.2.1/Atlas-2.2.1.el6.x86_64.rpm
    

    2.安装

    [root@localhost home]# rpm -ivh Atlas-2.2.1.el6.x86_64.rpm 
    Preparing...                ########################################### [100%]
       1:Atlas                  ########################################### [100%]
    

     安装地址

    [root@localhost home]# ll /usr/local/mysql-proxy/
    total 16
    drwxr-xr-x. 2 root root 4096 Dec 28 10:47 bin  #bin目录下放的都是可执行文件
    drwxr-xr-x. 2 root root 4096 Dec 28 10:47 conf  #conf目录下放的是配置文件
    drwxr-xr-x. 3 root root 4096 Dec 28 10:47 lib  #lib目录下放的是一些包,以及Atlas的依赖
    drwxr-xr-x. 2 root root 4096 Dec 17  2014 log  #log目录下放的是日志,如报错等错误信息的记录
    

    3.给连接的主从数据库用户密码加密并记录

    [root@localhost bin]# cd /usr/local/mysql-proxy/bin/
    [root@localhost bin]# ./encrypt root

    4.配置Atlas,使用vim进行编辑

    [root@localhost conf]# cd /usr/local/mysql-proxy/conf/
    [root@localhost conf]# vim test.cnf

    进入后配置信息如下,更多参考官网

    ###1.配置范例及说明如下:
    [mysql-proxy]
    (必备,默认值即可)管理接口的用户名
    admin-username = user
    (必备,默认值即可)管理接口的密码
    admin-password = pwd
    (必备,根据实际情况配置)主库的IP和端口
    proxy-backend-addresses = 192.168.0.12:3306
    (非必备,根据实际情况配置)从库的IP和端口,@后面的数字代表权重,
    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和端口 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_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

    5.启动Atlas

    [root@localhost bin]# ./mysql-proxyd test start  #启动
    OK: MySQL-Proxy of test is started
    [root@localhost bin]# ./mysql-proxyd test restart  #重启Atlas。 
    [root@localhost bin]# ./mysql-proxyd test stop  #停止Atlas。
    

      

    注意: 

      (1). 运行文件是:mysql-proxyd(不是mysql-proxy)。 
      (2). test是conf目录下配置文件的名字 
      (3). 可以使用ps -ef | grep mysql-proxy查看Atlas是否已经启动或停止。

     6.连接Atlas测试,进入MySQL操作界面为成功

    [root@localhost ~]#  yum install mysql      #按需安装mysql客户端,如果显示找不到命令,需要安装,MySQL不需要启动
    [root@localhost ~]#  mysql -h127.0.0.1 -P1234 -u root -p root  #配置的用户
    [root@localhost ~]# mysql -h127.0.0.1 -P2345 -u user -p pwd  #管理员
    

      

    可以访问help表查看能做什么

    mysql> select * from help; #查看管理DB的各类命令 
    +----------------------------+---------------------------------------------------------+
    | command                    | description                                             |
    +----------------------------+---------------------------------------------------------+
    | SELECT * FROM help         | shows this help                                         |
    | SELECT * FROM backends     | lists the backends and their state                      |
    | SET OFFLINE $backend_id    | offline backend server, $backend_id is backend_ndx's id |
    | SET ONLINE $backend_id     | online backend server, ...                              |
    | 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", ...                        |
    | SELECT * FROM clients      | lists the clients                                       |
    | ADD CLIENT $client         | example: "add client 192.168.1.2", ...                  |
    | REMOVE CLIENT $client      | example: "remove client 192.168.1.2", ...               |
    | SELECT * FROM pwds         | lists the pwds                                          |
    | ADD PWD $pwd               | example: "add pwd user:raw_password", ...               |
    | ADD ENPWD $pwd             | example: "add enpwd user:encrypted_password", ...       |
    | REMOVE PWD $pwd            | example: "remove pwd user", ...                         |
    | SAVE CONFIG                | save the backends to config file                        |
    | SELECT VERSION             | display the version of Atlas                            |
    +----------------------------+---------------------------------------------------------+
    16 rows in set (0.00 sec)
    mysql> SELECT * FROM backends; #列出后台和他们的状态
    +-------------+--------------------+-------+------+
    | backend_ndx | address            | state | type |
    +-------------+--------------------+-------+------+
    |     1 | 192.168.3.39:3306     | up    | rw   |
    |   2    | 192.168.3.101:3306 | down  | ro   |
    +-------------+--------------------+-------+------+
    2 rows in set (0.00 sec)
    都为up说明连接成功rw代表写,ro代表读

     执行SQL进行测试可以显示执行信息

    [root@localhost ~]# more /usr/local/mysql-proxy/log/test.log 
    2018-03-21 20:59:28: (critical) network-mysqld.c.1387: plugin_call(CON_STATE_READ_QUERY) failed  #关键
    2018-03-21 21:01:22: (warning) Forbidden SQL: 192.168.3.14:56397: delete from user;  #警报
    2016-01-28 09:55:22: (message) proxy listening on port 0.0.0.0:1234  #消息
    2016-01-28 09:55:22: (message) added read/write backend: 192.168.1.2:3306  #写
    2016-01-28 09:55:22: (message) added read-only backend: 192.168.1.3:3306  #读
    或者
    [root@localhost ~]# tail -f /usr/local/mysql-proxy/log/sql_test.log  #运行实施加载 ,需要更改日志配置,修改日志为实时写入磁盘

      

  • 相关阅读:
    DTN相关研究机构介绍之Comnet@tkk
    Contact
    MyEclips注册码生成
    对list排序,按名字排,如果名字一样就按年龄排
    在JSP页面中获取当前日期时间
    javascript全局变量怎么定义?
    理解了java一次编译多处运行的意思了
    HTML <td> 标签的 nowrap 属性
    <! >
    java.io.File中的绝对路径和相对路径.
  • 原文地址:https://www.cnblogs.com/cypress/p/8624844.html
Copyright © 2020-2023  润新知