• mysql读写分离(使用Atlas实现)后面的连接mysql


    mysql读写分离(使用Atlas实现)

    mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,等,但其不支持大数据量的分库分表且性能较差。下面介绍几款能代替其的mysql开源中间件产品:Atlas,tddl,Mycat。 
      mysql中间件研究原文:Mysql中间件研究(Atlas,cobar,TDDL)

    • 环境准备

      192.168.198.130(Atlas所在机器) 
      MySQL所在机器,配置好主从复制 
      192.168.198.131(Master) 
      192.168.198.132(Slave)

      mysql主机允许Atlas远程连接

    grant all on *.* to 'root'@'192.168.198.%' identified by '123456';
    flush privileges;
    • 1
    • 2
    • 1、安装Atlas
    rpm -vih https://github.com/Qihoo360/Atlas/releases/download/2.2.1/Atlas-2.2.1.el6.x86_64.rpm
    #注意操作系统的版本,安装相应版本的Atlas。
    • 1
    • 2

      备用下载地址: http://pan.baidu.com/s/1kUnK3lH

    • 2、配置Atlas
    cd /usr/local/mysql-proxy/  # Atlas的安装目录
    vim conf/test.cnf           #很多选项用默认值即可
    • 1
    • 2

      中文注释,按需修改 
      1)主库的ip和端口,可设置多项,用逗号分隔

    proxy-backend-addresses = 192.168.198.131:3306
    • 1

      2)(非必备,根据实际情况配置)从库的IP和端口,@后面的数字代表权重,用来作负载均衡,若省略则默认为1,可设置多项,用逗号分隔。如果想让主库也能分担读请求的话,只需要将主库信息加入到下面的配置项中。

    #proxy-read-only-backend-addresses = 127.0.0.1:3305@1
    proxy-read-only-backend-addresses = 192.168.198.132:3306
    • 1
    • 2

      3)(必备,根据实际情况配置)用户名与其对应的加密过的MySQL密码,密码使用安装路径 /bin目录下的加密程序encrypt加密,用户名与密码之间用冒号分隔。主从数据库上需要先创建该用户并设置密码(用户名和密码在主从数据库上要一致)。 
      加密密码:

    [root@localhost bin]# ./encrypt 123456
    • 1

      配置密码

    pwds = root:/iZxz+0GRoA=
    • 1

      4)(必备,默认值即可)Atlas的运行方式,设为true时为守护进程方式,设为false时为前台方式,一般开发调试时设为false,线上运行时设为true

    daemon = true
    • 1

      5)(必备,默认值即可)Atlas监听的工作接口IP和端口,proxy-address = 0.0.0.0:1234代表客户端应该使用1234这个端口连接Atlas来发送SQL请求。

    proxy-address = 0.0.0.0:1234
    • 1

      6)(必备,默认值即可)Atlas监听的管理接口IP和端口,admin-address = 0.0.0.0:2345代表DBA应该使用2345这个端口连接Atlas来执行运维管理操作。

    admin-address = 0.0.0.0:2345
    • 1

      7)(可选项,可不设置)默认字符集,若不设置该项,则默认字符集为latin1

    charset = utf8
    • 1

      8)(必备,根据实际情况配置)SQL日志的开关,可设置为OFF、ON、REALTIME,OFF代表不记录SQL日志,ON代表记录SQL日志,该模式下日志刷新是基于缓冲区的,当日志填满缓冲区后,才将日志信息刷到磁盘。REALTIME用于调试,代表记录SQL日志且实时写入磁盘,默认为OFF

    sql-log = REALTIME
    • 1

      日志路径在 /usr/local/mysql-proxy/log 下

    • 3、运行Atlas

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

    ./mysql-proxyd test start      #启动Atlas。
      OK: MySQL-Proxy of test is started
    
    ./mysql-proxyd test restart    #重启Atlas。
    
    ./mysql-proxyd test stop       #停止Atlas。
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

      注意: 
      (1). 运行文件是:mysql-proxyd(不是mysql-proxy)。 
      (2). test是conf目录下配置文件的名字,也是配置文件里instance项的名字,三者需要统一。 
      (3). 可以使用ps -ef | grep mysql-proxy查看Atlas是否已经启动或停止。

    • 4、连接Atlas

        客户端使用刚才配置的Atlas监听端口连接到Atlas代理服务

    [root@localhost ~]#  yum install mysql      #按需安装mysql客户端
    [root@localhost ~]#  mysql -h192.168.198.130 -P1234 -uroot -p123456
    • 1
    • 2

      执行sql进行测试,可以通过日志看到写操作都在Master,读操作都连接到Slave了

    [root@localhost ~]# more /usr/local/mysql-proxy/log/test.log 
    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.198.131:3306
    2016-01-28 09:55:22: (message) added read-only backend: 192.168.198.132:3306
    • 1
    • 2
    • 3
    • 4

      连接到管理端口

    [root@localhost ~]# mysql -h192.168.198.130 -P2345 -uuser -ppwd
    mysql> select * from help;        #查看管理DB的各类命令
    mysql> SELECT * FROM backends;    #列出后台和他们的状态
    +-------------+----------------------+-------+------+
    | backend_ndx | address              | state | type |
    +-------------+----------------------+-------+------+
    |           1 | 192.168.198.131:3306 | up    | rw   |
    |           2 | 192.168.198.132:3306 | up    | ro   |
    +-------------+----------------------+-------+------+
    2 rows in set (0.00 sec)
  • 相关阅读:
    腾讯视频插入网页的代码;
    FW: 软件持续交付的诉求;
    TOGAF
    Windows WSL2 htop打开黑屏的问题解决
    requests.exceptions.ConnectionError: HTTPSConnectionPool(host='appts.xxx.com%20', port=443):
    sqlalchemy实现模糊查询
    jenkins过滤版本,可选择版本
    QML 布局之一:锚布局详解(各种例子)
    Qt Quick 常用控件:Button(按钮)用法及自定义
    The Common Order Operations of Dis Operation System (DOSS)
  • 原文地址:https://www.cnblogs.com/handsome1013/p/7592258.html
Copyright © 2020-2023  润新知