mysql主从利用proxy实现读写分离

编译安装代理服务

安装依赖
yum update -y nss curl libcurl
yum group install "Development tools"
yum install gcc make libcurl-devel openssl-devel gmp-devel tar libffi-devel gettext-devel -y
yum install -y tcpdump net-tools jemalloc-devel libevent-devel glib2-devel lua-devel lua mysql-devel git
#yum install glib2
#yum install jemalloc

cd /opt && git clone https://github.com/Qihoo360/Atlas
cd Atlas

需要先修改源代码
vim /opt/Atlas/src/network-conn-pool-lua.c
220行:char tmp[] = {to_write - 4, 0, 0, 1, 0x85这行代码
将0x85修改成0x87之后,保存退出

./bootstrap.sh
make clean
make && make install

配置项添加或变更这几项:
daemon=true
event-threads=2
charset=utf8mb4
sql-log=ON
max_conn_for_a_backend=0
wait-timeout=60

编辑配置文件vi /usr/local/mysql-proxy/conf/config.cnf

[mysql-proxy]
admin-username=admin ###管理接口的用户名
admin-password=admin123 ###管理接口的密码
#admin-lua-script=/usr/local/mysql-proxy/lib/mysql-proxy/lua/admin.lua
log-level=debug ####日志级别
log-path=./log #####日志路径
#plugin-dir=./lib
event-threads=2 ##工作线程数,对Atlas的性能有很大影响,可根据情况适当设置
instance=config ####配置文件的名字
proxy-address=0.0.0.0:1234 #Atlas监听的工作接口IP和端口
admin-address=0.0.0.0:2345 #Atlas监听的管理接口IP和端口

####Atlas后端连接的MySQL主库的IP和端口,可设置多项,用逗号分隔
proxy-backend-addresses=192.168.50.199:3306

###Atlas后端连接的MySQL从库的IP和端口,@后面的数字代表权重,用来作负载均衡,若省略则默认为1,可设置多项,用逗号分隔
proxy-read-only-backend-addresses=192.168.0.206:3306

###用户名与其对应的加密过的MySQL密码,密码使用PREFIX/bin目录下的加密程序encrypt加密,下行的user1和user2为示例,将其替换为你的MySQL的用户名和加密密码!
pwds=saybot:Ze2h****

daemon=true #####设置Atlas的运行方式,设为true时为守护进程方式,设为false时为前台方式,一般开发调试时设为false,线上运行时设为true,true后面不能有空格
keepalive=true ####设置Atlas的运行方式,设为true时Atlas会启动两个进程,一个为monitor,一个为worker,monitor在worker意外退出后会自动将其重启,设为false时只有worker,没有monitor,一般开发调试时设为false,线上运行时设为true,true后面不能有空格。

charset=utf8mb4 ###默认字符集
sql-log=ON ###########日志开关,
max_conn_for_a_backend=0
wait-timeout=60

配置完成后启动服务
cd /usr/local/mysql-proxy/bin/ ####进入启动文件目录
./mysql-proxyd config start ####启动服务

主从后续会追加。。。。。。。

参考文章
https://www.cnblogs.com/yyhh/p/5084844.html

原文地址:https://blog.51cto.com/907832555/2431466

时间: 2024-08-29 01:46:14

mysql主从利用proxy实现读写分离的相关文章

Mysql主从配置,实现读写分离

大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢失的话,后果更是 不堪设想.这时候,我们会考虑如何减少数据库的联接,一方面采用优秀的代码框架,进行代码的优化,采用优秀的数据缓存技术如:memcached,如果资金丰厚的话,必然会想到假设服务器群,来分担主数据库的压力.Ok切入今天微博主题,利用MySQL主从配置,实现读写分离,减轻数据库压力.这种

MySQL主从配置及实现读写分离

大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢失的话,后果更是 不堪设想.这时候,我们会考虑如何减少数据库的联接,一方面采用优秀的代码框架,进行代码的优化,采用优秀的数据缓存技术如:memcached,如果资金丰厚的话,必然会想到假设服务器群,来分担主数据库的压力.Ok切入今天主题,利用MySQL数据库主从配置,实现读写分离,减轻数据库压力.这

MySQL深入利用Ameoba实现读写分离

3 ameoba安装配置 ? 3.1 安装配置JDK [[email protected] ~]# rpm -ivh jdk-7u67-linux-x64.rpm [[email protected] ~]# cd /usr/java/ ? 修改环境变量 ? [[email protected] ~]# vim /etc/profile.d/java.sh [[email protected] ~]# cat /etc/profile.d/java.sh export JAVA_HOME=/us

MySQL主从(MySQL proxy Lua读写分离设置,一主多从同步配置,分库分表方案)

Mysql Proxy Lua读写分离设置 一.读写分离说明 读写分离(Read/Write Splitting),基本的原理是让主数据库处理事务性增.改.删操作(INSERT.UPDATE.DELETE),而从数据库处理SELECT查询操作.数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库. 1.设置说明 Master服务器: 192.168.41.196 Slave服务器: 192.168.41.197 Proxy服务器: 192.168.41.203 2.安装Mysql Pro

mysql数据库的主从同步,实现读写分离 g

https://blog.csdn.net/qq_15092079/article/details/81672920 前言 1 分别在两台centos 7系统上安装mysql 5.7 2 master主服务器的配置 2.1 配置文件my.cnf的修改 2.2 创建从服务器的用户和权限 2.3 重启mysql服务 2.4 查看主服务器状态 3 slave从服务器的配置 3.1 配置文件my.cnf的修改 3.2 重启mysql服务 3.3 连接master主服务器 3.4 启动slave数据同步

MySQL/MariaDB基于MMM实现读写分离及高可用

前言 MMM(Master-Master replication managerfor Mysql,Mysql主主复制管理器)是一套灵活的脚本程序,基于perl实现,用来对mysql replication进行监控和故障迁移,并能管理mysql Master-Master复制的配置(同一时间只有一个节点是可写的). MMM 优缺点 优点:高可用性,扩展性好,出现故障自动切换,对于主主同步,在同一时间只提供一台数据库写操作,保证的数据的一致性. 缺点:Monitor节点是单点,可以结合Keepal

高可用架构篇--MyCat在MySQL主从复制基础上实现读写分离

点击链接加入群[Dubbo技术交流2群]:https://jq.qq.com/?_wv=1027&k=46DcDFI 一.环境 操作系统:CentOS-6.6-x86_64-bin-DVD1.iso JDK版本:jdk1.7.0_45 MyCat版本:Mycat-server-1.4-release-20151019230038-linux.tar.gz MyCat节点IP:192.168.1.203      主机名:edu-mycat-01  主机配置:4核CPU.4G内存 MySQL版本:

mysql利用atlas进行读写分离时,一直走主库的问题

项目中,利用atlas对mysql数据库进行了读写分离. 当时配置了去从库读数据. 当用数据库工具连接代理测试时,一切正常. 当在项目中使用框架mybatis连数据库时,却都直接去主库读写数据了. 自己写个main方法 用jdbc连接也是正常的.一用mybatis框架就不正常了,难道atlas对mybatis不支持吗? 于是各种百度,谷歌... 最后发现原因:如果有事务存在的话,atlas就强制走主库.而这个方法类上偏偏添加了事务@Transactional 解决办法在方法上加上@Transac

wamp mysql 创建主从数据库,,读写分离在thinkphp上设置??

这跟你是不是wmap没有关系的, wamp是一个集成环境,只是一次性帮你创建一个web服务器而已 下面给你些配置 一.登录Master服务器,修改my.ini , 大概最下面,添加如下内容: [mysqld]port=3306   在这两行下面加上: log-bin=mysql-bin server-id=1 #数据库ID号, 为1时表示为Master  #启用二进制日志: 效果图: 配置完重启 mysql 二.在主库服务器上建立从库 slave 同步时所要使用的用户名和密码 执行:mysql>