Centos 搭建Mysql-Proxy 读写分离

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:  Mysql 读写分离 主:192.168.153.130从:193.168.153.131Mysql-Proxy:193.168.153.132 这里省略mysql主从同步,如果有需要,请查看:Mysql,主从同步  1、 安装Lua官网下载:http://www.lua.org/download.htmlLua 是一个小巧的脚本语言。

 

 

Mysql 读写分离

 

主:192.168.153.130

从:193.168.153.131

Mysql-Proxy:193.168.153.132

 

这里省略mysql主从同步,如果有需要,请查看:Mysql,主从同步 

 

1、 安装Lua

官网下载:http://www.lua.org/download.html

Lua 是一个小巧的脚本语言。Lua由标准C编写而成,代码简洁优美,几乎在所有操作系统和平台上都可以编译,运行。

 

一个完整的Lua解释器不过200k,在目前所有脚本引擎中,Lua的速度是最快的。这一切都决定了Lua是作为嵌入式脚本的最佳选择。

 1)、安装lua需要依赖很多软件包。

 

 可以通过rpm -qa | grep name检查以下软件是否安装:

 

 gcc* gcc-c++* autoconf* automake* zlib* libxml* ncurses-devel* libmcrypt* libtool* flex* pkgconfig* libevent glib*

 

 若缺少相关的软件包,可通过yum -y install方式在线安装,或直接从系统安装光盘中找到并通过rpm -ivh方式安装。(我的话一般是直接在系统光盘软件库中找到直接rpm安装的,有些找不到,则先在网上下载然后在ftp传给linux再进行安装)

   2)、依赖软件安装完毕后则进行编译安装lua

 

 MySQL-Proxy的读写分离主要是通过rw-splitting.lua脚本实现的,因此需要安装lua。

 

 官网下载:http://www.lua.org/download.html(下载源码包)

   wget http://www.lua.org/ftp/lua-5.1.4.tar.gz 

   tar zxvf lua-5.1.4.tar.gz

   cd lua-5.1.4 

   make linux

   make install

   export LUA_CFLAGS="-I/usr/local/include" LUA_LIBS="-L/usr/local/lib -llua -ldl" LDFLAGS="-lm"

 

2、 安装mysql-proxy

   1)、首先查看linux版本确认是32位还是64为系统

 

 查看linux内核版本

cat /etc/issue

 查看linux版本

cat /proc/version

 2)、按系统位数下载

   https://downloads.mysql.com/archives/proxy/

 3)、安装

   tar –zxvf mysql-proxy-0.8.5- linux-rhel5-x86-64bit.tar.gz

   mkdir /usr/local/mysql-proxy

   cp ./ mysql-proxy-0.8.5-linux-rhel5-x86-64bit/* /usr/local/mysql-proxy

   cd /usr/local/mysql-proxy

3、 读写分离测试

   1)、修改rw-splitting.lua文件

   修改默认连接,进行快速测试,不修改的话要达到连接数为4时才启用读写分离

 cp /usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua ./

 

 # vi rw-splitting.lua

   2)、修改完成后,启动mysql-proxy

   cd /usr/local/mysql/bin

   ./mysql-proxy --proxy-read-only-backend-addresses=192.168.153.131:3306 --proxy-backend-addresses=192.168.153.130:3306 --proxy-lua-script=/usr/local/mysql-proxy/rw-splitting.lua &

   参数:

 

     --proxy-read-only-backend-addresses  #只读服务器地址(ip)

 

     --proxy-backend-addresses       #服务器地址(主服务器)

 

     --proxy-lua-script            #lua脚本路劲

 

         &                     #表示后台执行

   3)、创建用于读写分离的数据库连接用户

  用户名:proxy1

  密  码:321

   mysql>grant all on *.* to 'proxy1'@'192.168.153.132' identified by '321';

   mysql>use aa;

   mysql>create table tab1(id int auto_increment,name varchar(32) not null,primary key(id));

   【因为已经开启了主从复制所以,130、131主机mysql中都创建了这个用户】

   4)、测试登陆账号proxy1@192.168.153.132进行添加数据

 可以使用任意ip客户端登陆这个账号

 在192.168.153.132登陆:

mysql -u proxy1 -P4040 -h192.168.153.132 –p
mysql> use aa;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> insert into tab1 (name) values('proxy111');
Query OK, 1 row affected (0.00 sec)

mysql> insert into tab1 (name) values('proxy222');
Query OK, 1 row affected (0.00 sec)

     在两个mysql中查看结果:一致

 

   结果表明:账号使用

   5)、关闭131mysql的从复制

   mysql> stop slave;

 

   6)、证明写分离

   使用proxy1@192.168.95.13账号打开多个客户端进行插入数据

 

   mysql> insert into tab1 (name) values('stop_slave11111');
   ….
   mysql> insert into tab1 (name) values('stop_slave6666’);

 查看:

 

  分别登陆11mysql与12mysql查看aa.tab1中的数据

 

  主数据库:

 

   从数据库:

 

   结果中显示插入的数据存在与主数据库,而从数据库没有,所以证明写能够分离。

   7)、证明读分离

   使用proxy1@192.168.95.13账号登陆mysql,查看aa.tab1中的数据

   mysql>use aa;

   mysql>select*from tab1;

 

   结果中显示只有从数据库的数据,结合上面的测试,可以证明读分离。可以继续加入数据,查看是否是主写从读。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
21天前
|
安全 关系型数据库 MySQL
Linux(CentOS6)安装MySQL5.6
Linux(CentOS 6)系统上安装MySQL 5.6版本的详细步骤,包括准备数据存放目录、创建用户、下载安装包、初始化数据库、配置服务脚本、设置环境变量等操作。
55 1
|
24天前
|
关系型数据库 MySQL Java
centos7安装mysql教程及Navicat平替软件
【8月更文挑战第17天】本教程详述CentOS 7上安装MySQL的过程。首先确保移除任何预装的MySQL组件,然后通过wget获取并安装MySQL的YUM源。可以选择安装特定版本如5.7或8.0。安装MySQL服务器后,启动服务并查找初始密码。登录MySQL后应立即更改密码,并可根据需要设置远程访问权限。此外,还推荐使用免费开源的DBeaver作为数据库管理工具,提供了安装步骤以方便管理和操作MySQL数据库。
|
12天前
|
弹性计算 关系型数据库 MySQL
centos7 mysql安装及配置
本文详细介绍了在阿里云服务器ECS上通过yum源安装MySQL 8.0.12的过程,包括更新yum源、下载并安装MySQL源、解决安装过程中可能遇到的问题等步骤。此外,还介绍了如何启动MySQL服务、设置开机自启、配置登录密码、添加远程登录用户以及处理远程连接异常等问题。适合初学者参考,帮助快速搭建MySQL环境。
86 8
centos7 mysql安装及配置
|
28天前
|
关系型数据库 MySQL Linux
在CentOS上使用yum安装与使用MySQL
在CentOS操作系统上使用yum包管理器安装和配置MySQL数据库的详细步骤,包括下载MySQL的yum源配置、安装MySQL服务、启动和停止服务、设置开机自启动、获取临时密码、修改root用户密码、授权用户以及处理相关问题。同时,文章还包含了一些操作的截图,帮助用户更直观地理解安装和配置过程。
195 0
在CentOS上使用yum安装与使用MySQL
|
28天前
|
关系型数据库 MySQL Linux
在CentOs7虚拟机Linux离线安装mysql5.6(亲测可用)
该博客文章详细记录了在CentOS 7虚拟机上离线安装MySQL 5.6版本的完整过程,包括下载安装包、导入虚拟机、卸载MariaDB、配置文件设置、服务启动和权限配置等步骤。
在CentOs7虚拟机Linux离线安装mysql5.6(亲测可用)
|
1月前
|
关系型数据库 MySQL Linux
【一键解锁神秘力量!】CentOS 7 通过编译源码方式安装 MySQL 数据库 —— 从零到英雄的数据库安装实战秘籍!
【8月更文挑战第9天】随着业务增长,对数据库的需求日益提高。在 CentOS 7 中,通过编译源码安装 MySQL 可提供更高定制性和灵活性。本文详细介绍从准备环境、下载源码、配置编译参数到安装 MySQL 的全过程,并对比 RPM 包安装方法,帮助读者根据需求选择合适方案。实践时需注意备份数据、选择合适版本、确保安全性和调优性能等要点。
102 1
|
1月前
|
SQL 关系型数据库 MySQL
(二十五)MySQL主从实践篇:超详细版读写分离、双主热备架构搭建教学
在上篇《主从原理篇》中,基本上把主从复制原理、主从架构模式、数据同步方式、复制技术优化.....等各类细枝末节讲清楚了,本章则准备真正对聊到的几种主从模式落地实践,但实践的内容通常比较枯燥乏味,因为就是调整各种配置、设置各种参数等步骤。
160 2
|
1月前
|
关系型数据库 MySQL PHP
开发者必看:MySQL主从复制与Laravel读写分离的完美搭配
开发者必看:MySQL主从复制与Laravel读写分离的完美搭配
53 2
|
23天前
|
SQL 关系型数据库 MySQL
mysql读写分离,主从同步
本文介绍了如何在Laravel项目中配置数据库读写分离,并实现MySQL主从同步。主要步骤包括:在`config/database.php`中设置读写分离配置;为主机授予从机访问权限;配置各MySQL服务器的`/etc/my.cnf`文件以确保唯一的`server-id`;以及通过SQL命令设置主从关系并启动从服务。文章还针对一些常见错误提供了排查方法。最后通过验证确认主从同步是否成功。[原文链接](https://juejin.cn/post/6901581801458958344)。版权所有者为作者佤邦帮主,转载请遵循相关规定。
|
1月前
|
cobar 关系型数据库 MySQL
使用MyCat实现MySQL主从读写分离(一)概述
【8月更文挑战第11天】MySQL读写分离通过主从复制分散负载,主库负责写操作,从库承担读查询,以复制技术确保数据一致性。此策略有效缓解锁竞争,提升查询效能并增强系统可用性。实现方式包括应用层处理,简便快捷但灵活性受限;或采用中间件如MyCAT、Vitess等,支持复杂场景但需专业团队维护。
38 0