GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' identified by 'mysql';
FLUSH PRIVILEGES;
主从库上全做
--------------------------------------------------------------------
yum install -y gcc*
rpm -ivh Atlas-2.2.1.el5.x86_64.rpm   【rpm包直接安装】
rpm -ql Atlas 【查看安装路径】
grep -v '^#' /usr/local/mysql-proxy/conf/test.cnf  |grep -v '^$'  > /usr/local/mysql-proxy/conf/lipengfei  【过滤垃圾提示符】
mv test.cnf test.cnf.old
cat /usr/local/mysql-proxy/conf/lipengfei > /usr/local/mysql-proxy/conf/test.cnf 
rm -rf /usr/local/mysql-proxy/conf/lipengfei
/usr/local/mysql-proxy/bin/encrypt mysql           【mysql是我的密码,把密码加密】
TWbz0dlu35U=
vi /usr/local/mysql-proxy/conf/test.cnf
[mysql-proxy]
plugins = admin,proxy
admin-username=admin
admin-password=admin
admin-lua-script = /usr/local/mysql-proxy/lib/mysql-proxy/lua/admin.lua
proxy-backend-addresses = 192.168.8.100:3306
proxy-read-only-backend-addresses = 192.168.8.101:3306,192.168.8.102:3306
pwds = root:TWbz0dlu35U=
daemon = true
keepalive = true
event-threads = 8
log-level = message
log-path = /usr/local/mysql-proxy/log
instance = test
proxy-address = 0.0.0.0:1234
admin-address = 0.0.0.0:5678
charset = utf8
查看监听端口
netstat -tanlp | grep mysql
开启 
/usr/local/mysql-proxy/bin/mysql-proxyd test start
/usr/local/mysql-proxy/bin/mysql-proxyd test stop
登录管理
mysql -h 192.168.8.103 -P 5678 -u admin -padmin
正常通过代理操作
mysql -h 192.168.8.103 -P 1234 -u root -pmysql
SHOW VARIABLES LIKE 'server_id';
mysql> select * from help;
+-------------------+---------------------------------------+
| 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", ...                        |
| ADD CLIENT $client         | example: "add client 192.168.1.2", ...                  |
| REMOVE CLIENT $client      | example: "remove client 192.168.1.2", ...               |
| SAVE CONFIG                | save the backends to config file                        |
+-------------------+---------------------------------------+
10 rows in set (0.00 sec)
mysql> select * from backends;
+-------------+-------------------+-------+------+
| backend_ndx       |           address        | state    |  type   |
+-------------+-------------------+-------+------+
|           1      | 192.168.0.42:3306         | down     | rw      |
|           2      | 192.168.0.44:3306         | down     | ro      |
|           3      | 192.168.0.43:3306         | down     | ro      |
+-------------+-------------------+-------+------+
3 rows in set (0.00 sec)
5678端口:是Atlas的管理接口,此接口提供了查看mysql状态,设置上线、下线后端mysql服务器
访问方法使用mysql命令
mysql -h 10.142.132.50 -P2345 -u admin -p'admin'
这里的用户名密码是上面配置文件中的admin-username = admin、admin-password = admin
下面是管理接口的使用帮助
SELECT * FROM help;  # 查看帮助信息
SELECT * FROM backends; # 查看后端主机状态
SET OFFLINE $backend_id  # 下线一台主机,$backend_id == SELECT * FROM backends;查出来的ID
SET ONLINE $backend_id   # 上线一台主机
ADD MASTER $backend      # 添加一台master节点,如: ADD MASTER 10.57.1.131;
ADD SLAVE $backend       # 添加一台slave节点,如 : ADD SLAVE 10.57.1.132;
REMOVE BACKEND $backend_id # 删除一个节点,
自动读写分离挺好,但有时候我写完马上就想读,万一主从同步延迟怎么办?
A: SQL语句前增加 /*master*/ 就可以将读请求强制发往主库
---------------------------------------------------------------------
将atlas设置成服务,并实现开机自动启动
# 说明:作者仅在CentOS7.0上进行了测试,而且没有进行可靠性和稳定性的测试!
cp /tmp/atlas /etc/rc.d/init.d/atlas
chmod +x /etc/rc.d/init.d/atlas
chkconfig --add atlas
chkconfig atlas on
#!/bin/sh
#description: atlas autorun
#your instance name
instance_name=test
case "$1" in 
"start")
/usr/local/mysql-proxy/bin/mysql-proxyd $instance_name start
;; 
"stop") 
/usr/local/mysql-proxy/bin/mysql-proxyd $instance_name stop
;; 
"restart") 
/usr/local/mysql-proxy/bin/mysql-proxyd $instance_name restart
;; 
"status") 
/usr/local/mysql-proxy/bin/mysql-proxyd $instance_name status
;; 
*) 
echo "Usage: service atlas start/stop/restart/status "                              
;; 
esac
使用命令如下:
service atlas start
service atlas stop
service atlas status
service atlas restart  
----------------------------------------------------
监控atlas脚本
cat /usr/local/mysql-proxy/bin/monitor_atlas.sh
#!/bin/bash
if  [ $(ps -ef |grep 'mysql-proxy' |grep -v 'grep' |wc -l) -eq "0" ];then
/usr/local/mysql-proxy/bin/mysql-proxyd test start
sleep 5
if [ $(ps -ef |grep 'mysql-proxy' |grep -v 'grep' |wc -l) -eq "0"  ];then
killall -9 keepalived
service network restart
fi
fi
chmod +x /usr/local/mysql-proxy/bin/monitor_atlas.sh
------------------------配置文件说明------------------------
[mysql-proxy]
#管理接口的用户名,根据自己需要定义
admin-username = admin
#管理接口的密码
admin-password = password
#Atlas后端连接的MySQL主库的IP和端口,可设置多项,用逗号分隔
proxy-backend-addresses = 10.57.1.131:3306
#Atlas后端连接的MySQL从库的IP和端口,@后面的数字代表权重,用来作负载均衡,若省略则默认为1,可设置多项,用逗号分隔
proxy-read-only-backend-addresses = 10.57.1.132:3306@1
#用户名与其对应的加密过的MySQL密码,密码使用PREFIX/bin目录下的加密程序encrypt加密,下行的user1和user2为示例,将其替换为你的MySQL的用户名和加密密码!
pwds = root:YQsbJY4G4oc=,test:YQsbJY4G4oc=
# 需要注意的是,这两个用户要在MySQL-Master上创建并开放对应的访问权限,这里的用户是需要对外开放使用的用户
#设置Atlas的运行方式,设为true时为守护进程方式,设为false时为前台方式,一般开发调试时设为false,线上运行时设为true
daemon = true
#设置Atlas的运行方式,设为true时Atlas会启动两个进程,一个为monitor,一个为worker,monitor在worker意外退出后会自动将其重启,设为false时只有worker,没有monitor,一般开发调试时设为false,线上运行时设为true
keepalive = true
#工作线程数,对Atlas的性能有很大影响,可根据情况适当设置
event-threads = 8
#日志级别,分为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
#实例名称,用于同一台机器上多个Atlas实例间的区分
#instance = test
#Atlas监听的工作接口IP和端口
proxy-address = 0.0.0.0:3306
#Atlas监听的管理接口IP和端口
admin-address = 0.0.0.0:2345
#连接池的最小空闲连接数,可根据业务请求量大小适当调大或调小
min-idle-connections = 128
#分表设置,此例中person为库名,mt为表名,id为分表字段,3为子表数量,可设置多项,以逗号分隔,若不分表则不需要设置该项
#tables = person.mt.id.3
#默认字符集,设置该项后客户端不再需要执行SET NAMES语句
charset = utf8
#允许连接Atlas的客户端的IP,可以是精确IP,也可以是IP段,以逗号分隔,若不设置该项则允许所有IP连接,否则只允许列表中的IP连接
client-ips = 127.0.0.1, 10.0.0
#Atlas前面挂接的LVS的物理网卡的IP(注意不是虚IP),若有LVS且设置了client-ips则此项必须设置,否则可以不设置
#lvs-ips = 192.168.1.1
# End
来自为知笔记(Wiz)

转载于:https://www.cnblogs.com/xiaoxiao5ya/p/a867d29ca1b1f03a6b93b6a4022bfa8e.html

day09_读写分离_Atlas小记相关推荐

  1. day09_读写分离_组件介绍

    mysql中间件研究(Mysql-prxoy,Atlas,阿米巴,cobar,TDDL) mysql-proxy MySQL Proxy就是这么一个中间层代理,简单的说,MySQL Proxy就是一个 ...

  2. atlas mysql 数据库同步_Atlas实现数据库读写分离

    MySQL的代理最常见的是mysql-proxy.cobar.mycat.Atlas等.mysql-proxy是一个轻量的中间代理.cobar是阿里提供的一个中间件,已经停止更新.mycat的前身就是 ...

  3. thinkphp mysql 密码加密_thinkphp框架实现mysql读写分离

    基于thinkphp3.2.3,官方手册:http://www.kancloud.cn/manual/thinkphp/1733 注意事项: 1.首先得配置好mysql主从,可以多主多从 2.在读写分 ...

  4. 缓存成神路:Redis读写分离难以理解?一文解析Redis读写分离技术

    背景 云数据库Redis版不管主从版还是集群规格,replica作为备库不对外提供服务,只有在发生HA的时候,replica提升为master后才承担读写流量.这种架构读写请求都在master上完成, ...

  5. mysql读写分离(MySQL Proxy 安装和使用)

    一.必备软件: 1.LUA    可以去LUA的官方下载:www.lua.org 2.MySQL Proxy    这里有好多二进制版本.     http://mysql.cdpa.nsysu.ed ...

  6. mysql查询并设置高亮_Thinkphp3.2.3设置MySql主从读写分离后,简单调用主数据库查询

    图/文:迷神 Thinkphp是一款不错的国产框架,使用范围广,应用也比较多.随着网站访问增大往往需要使用mysql主从同步功能,本身Thinkphp自带了主从读写分离的功能了. 但是我们经常有一个场 ...

  7. 使用Mycat构建MySQL读写分离、主从复制、主从高可用

    数据库读写分离对于大型系统或者访问量很高的互联网应用来说,是必不可少的一个重要功能. 从数据库的角度来说,对于大多数应用来说,从集中到分布,最基本的一个需求不是数据存储的瓶颈,而是在于计算的瓶颈,即S ...

  8. mysql主从配置读写分离笔记

    第二次回头看了,第一次学完后感觉都会了,回头再看才发现什么都想不起来了.还得查资料再学习,虽然很简单.还是做个笔记吧!笔记有点糙 就是自己看的 因为主要是测试主从和读写分离 所以直接 yum inst ...

  9. mysql+mycat搭建稳定高可用集群,负载均衡,主备复制,读写分离

    数据库性能优化普遍采用集群方式,oracle集群软硬件投入昂贵,今天花了一天时间搭建基于mysql的集群环境. 主要思路 简单说,实现mysql主备复制-->利用mycat实现负载均衡. 比较了 ...

最新文章

  1. scala函数式编程(二) scala基础语法介绍
  2. android23 imei 权限,android------关于API 23的权限问题
  3. 河南民办计算机大学排名,2020年河南最好的民办大学最新排名
  4. .Net装箱拆箱编程实例
  5. 18、INSERT:插入数据(添加数据)
  6. 三维数组设置索引_10-Unity入门学习之C#基础9「数组」
  7. 嵌入式 linux restful,嵌入式 RESTful 框架 express.java
  8. Codeforces 1138B Circus (构造方程+暴力)
  9. SAP UI5的support Assistant
  10. 调用异步服务时的超时处理
  11. KL散度的通俗易懂理解
  12. 如何下载安装Photoshop cs 6(供新手)
  13. e class connect.php,帝国CMS6.6程序剖析——e/class/connect.php
  14. 数据库入门-pymysql模块的使用
  15. [ArcGIS] 空间分析(二) 矢量数据
  16. free(): invalid next size (fast): 0x000000xxx
  17. Kafka安装(windows)
  18. 吊炸天MyCat入门
  19. Frida学习之旅(一)--Google Pixel手机的ROOT
  20. 用JS改变html样式

热门文章

  1. oracle10g的rat模拟,Oracle 10g Logminer 研究及测试
  2. android横向展示状态,【报Bug】Android横屏状态下启动App,即使在App.vue中锁定竖屏,但是首页nvue中的rpx单位是按照启动的横竖屏状态显示的!...
  3. cass展点不在原位置,cass中打开一副图后,通过绘图处理-——展高程点,怎么之前的图形就不显示了,,只剩下高程点!!...
  4. 洛克人红色思考型机器人叫什么_稻船敬二新企划《红色灰烬》 依然是机器人风格...
  5. ubuntu安装好后常用软件安装和配置
  6. 洛谷P1014 [NOIP1999 普及组] Cantor 表
  7. 8086加法指令ADD
  8. 160 - 5 ajj.2
  9. python 抓取网页链接_从Python中的网页抓取链接
  10. dbms数据库管理系统_基本数据库管理系统(DBMS)能力问题和解答