- 浏览: 1578654 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
nich002:
原网站失效了。撸主简单粗暴的复制过来,可读性极差!差评!
Apache配置详解(最好的APACHE配置教程) -
107x:
不错,谢谢!
LINUX下查看文件夹下的文件个数! -
Hypereo:
好你妹,连个格式都没有!
Apache配置详解(最好的APACHE配置教程) -
resteater:
代码排版感觉有点乱!收发信息代码可读性不强!请问第一次发服务器 ...
java socket例子 -
resteater:
代码排版感觉有点乱!收发信息代码可读性不强!请问第一次发服务器 ...
java socket例子
From:http://blog.csdn.net/yueliangdao0608/archive/2008/05/06/2398655.aspx
一、必备软件:
1、LUA
可以去LUA的官方下载:www.lua.org
2、MySQL Proxy
这里有好多二进制版本。
http://mysql.cdpa.nsysu.edu.tw/Downloads/MySQL-Proxy/
或者去MYSQL官方下载源代码。
3、测试过程中取消了B和C的REPLICATION。这样SQL语句一下子就看出来从哪里来的。
如果是M-S(可以先在SLAVE上进行STOP SLAVE)
二、测试主机地址:
1、MySQL Proxy 安装地址:192.168.0.234(简称A)
2、MySQL 服务器地址:192.168.0.235(简称B)/236(简称C)
三、安装体验
如果是按照二进制包安装的,跳过这一步。
1、 LUA的安装
[root@localhost ~]#tar zxvf lua-5.1.2.tar.gz -C /usr/local
[root@localhost ~]# cd /usr/local/
[root@localhost local]# mv lua-5.1 lua
[root@localhost lua]# cd lua
[root@localhost lua]#make local;make install;
导出环境变量:
[root@localhost lua]#export LUA_CFLAGS="-I/usr/local/include" LUA_LIBS="-L/usr/local/lib -llua -ldl" LDFLAGS="-lm"
2、MySQL Proxy 安装
[root@localhost ~]#tar -zxvf mysql-proxy-0.6.1-linux-rhel4-x86-32bit.tar.gz -C /usr/local/mysql/
[root@localhost ~]#cd /usr/local/mysql
[root@localhost mysql]#mv mysql-proxy-0.6.1-linux-rhel4-x86-32bit/ mysql-proxy
[root@localhost sbin]# export PATH=$PATH:/usr/local/mysql/mysql-proxy/sbin/
四、使用MySQL Proxy
1、查看帮助选项
[root@localhost ~]# mysql-proxy --help-all
2、对MySQL 操作
MySQL服务器假设已经安装。(安装步骤这里就不写了)
两台机器上的表初始结构和数据都是一样的,而且都有t_girl_user这个用户。mysql> desc t;
+-------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| c_str | char(64) | NO | | | |
+-------+----------+------+-----+---------+----------------+
2 rows in set (0.00 sec)
2 rows in set (0.00 sec)
我在B上插入一条记录
mysql> insert into t(c_str) values('B');
Query OK, 1 row affected (0.00 sec)
在C上同样插入一条记录
mysql> insert into t(c_str) value('C');
Query OK, 1 row affected (0.00 sec)
mysql>
3、启动MySQL-Proxy(测试读写分离)
[root@localhostsbin]# mysql-proxy--proxy-read-only-backend-addresses=192.168.0.236:3306--proxy-backend-addresses=192.168.0.235:3306 --proxy-lua-script=/usr/local/mysql/mysql-proxy/share/mysql-proxy/rw-splitting.lua&
[1] 32554
让MYSQL PROXY自动启动的简单脚本
#!/bin/sh
# export PATH=$PATH:/usr/local/mysql-proxy
cd /usr/local/mysql-proxy
./mysql-proxy--proxy-read-only-backend-addresses=192.168.0.236:3306--proxy-backend-addresses=192.168.0.235:3306--proxy-lua-script=rw-splitting.lua >> /tmp/log
~
这个例子中限制192.168.0.236为只读,192.168.0.235为可写。
4、下来我们来看试验结果。
我们用几台客户端开启4个连接。
[root@localhost ~]# /usr/local/mysql/bin/mysql -ut_girl_user -p123456 -P4040 -h192.168.0.234 -Dt_girl
我这边已经启动了好几个客户端,这里就不贴了,命令和上面的一样。
写数据。mysql> insert into t(c_str) values ('wangwang');
Query OK, 1 row affected (0.01 sec)
mysql> show processlist;
+----+-------------+---------------------+--------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-------------+---------------------+--------+---------+------+-------+------------------+
| 12 | t_girl_user | 192.168.0.234:44975 | t_girl | Sleep | 28 | | NULL |
| 13 | t_girl_user | 192.168.0.234:44976 | t_girl | Sleep | 15 | | NULL |
| 14 | t_girl_user | 192.168.0.234:44977 | t_girl | Sleep | 19 | | NULL |
| 15 | t_girl_user | 192.168.0.234:44978 | t_girl | Query | 0 | NULL | show processlist |
+----+-------------+---------------------+--------+---------+------+-------+------------------+
4 rows in set (0.00 sec)
4 rows in set (0.00 sec)
读数据(现在还是写和读都在B上)
mysql> select * from t;
+----+----------+
| id | c_str |
+----+----------+
| 1 | B |
| 2 | wangwang |
+----+----------+
2 rows in set (0.00 sec)
再增加一个客户端连接。
1 row in set (0.00 sec)
mysql> show processlist;
+----+-------------+---------------------+--------+---------+------+-----------------------------------------------------------------------+------------------+
|Id | User | Host | db | Command | Time |State |Info |
+----+-------------+---------------------+--------+---------+------+-----------------------------------------------------------------------+------------------+
| 2 | system user | | NULL | Connect | 1842 | Hasread all relay log; waiting for the slave I/O thread to update it |NULL |
| 5 | root | localhost |t_girl | Query | 0 |NULL |show processlist |
| 12 | t_girl_user | 192.168.0.234:44975 |t_girl | Sleep | 446| | NULL |
| 13 | t_girl_user | 192.168.0.234:44976 |t_girl | Sleep | 188| | NULL |
| 14 | t_girl_user | 192.168.0.234:44977 |t_girl | Sleep | 206| | NULL |
| 15 | t_girl_user | 192.168.0.234:44978 |t_girl | Sleep | 203| | NULL |
| 16 | t_girl_user | 192.168.0.234:44979 |t_girl | Sleep | 164| | NULL |
| 17 | t_girl_user | 192.168.0.234:44980 |t_girl | Sleep | 210| | NULL |
+----+-------------+---------------------+--------+---------+------+-----------------------------------------------------------------------+------------------+
8 rows in set (0.00 sec)
现在我们来读数据。
mysql> select * from t;
+----+-------+
| id | c_str |
+----+-------+
| 1 | C |
+----+-------+
1 row in set (0.00 sec)
这个数据很明显是来自C的。
再插入一条记录
mysql> insert into t(c_str) values ('wangwei');
Query OK, 1 row affected (0.00 sec)mysql> select * from t;
+----+-------+
| id | c_str |
+----+-------+
| 1 | C |
+----+-------+
1 row in set (0.00 sec)
C上的数据没有变。还是没有数据。
现在跑到B上看看。mysql> show processlist;
数据被成功插入到B
+----+-------------+---------------------+--------+---------+------+-----------------------------------------------------------------------+------------------+
|Id | User | Host | db | Command | Time |State |Info |
+----+-------------+---------------------+--------+---------+------+-----------------------------------------------------------------------+------------------+
| 2 | system user | | NULL | Connect | 1842 | Hasread all relay log; waiting for the slave I/O thread to update it |NULL |
| 5 | root | localhost | t_girl | Query | 0 |NULL |show processlist |
|12 | t_girl_user | 192.168.0.234:44975 | t_girl | Sleep | 446| | NULL |
|13 | t_girl_user | 192.168.0.234:44976 | t_girl | Sleep | 188| | NULL |
|14 | t_girl_user | 192.168.0.234:44977 | t_girl | Sleep | 206| | NULL |
|15 | t_girl_user | 192.168.0.234:44978 | t_girl | Sleep | 203| | NULL |
|16 | t_girl_user | 192.168.0.234:44979 | t_girl | Sleep | 164| | NULL |
|17 | t_girl_user | 192.168.0.234:44980 | t_girl | Sleep | 210| | NULL |
+----+-------------+---------------------+--------+---------+------+-----------------------------------------------------------------------+------------------+
8 rows in set (0.00 sec)
mysql> select * from t;
+----+----------+
| id | c_str |
+----+----------+
| 1 | B |
| 2 | wangwang |
| 3 | wangwei |
+----+----------+
3 rows in set (0.00 sec)
这个读写分离应该看得很清楚。其他的功能等我测试了再总结吧。
如果要知道为什么连接多了才会进行分离的话,看看
手册
评论
mysql r --default-character-set=gbk < image.sql
http://www.jz123.cn/text/0311608.html
http://forge.mysql.com/wiki/MySQL_Proxy
发表评论
-
mysql知识细点
2010-10-19 13:27 1253From:http://dev.mysql.com/tech- ... -
FEDERATED存储引擎的描述--MySql数据库[z]
2010-09-27 16:58 1489From: http://www.wang48.com/jis ... -
mysql udf
2010-08-23 15:48 982User Defined Function (UDF) ... -
Mysql监控指南【z】
2010-06-22 10:12 1402Mysql作为广泛应用的数据库系统,平时运维工作中对她的监 ... -
mysql 主从配置 [z]
2010-06-03 17:41 1546From: http://blog.csdn.net/php ... -
mysql主从复制,读写分离
2010-03-17 13:51 2266From:http://hi.baidu.com/yzy888 ... -
MySQL中ALTER TABLE时的性能问题
2010-03-15 16:51 5591From: http://www.evget.com/zh-C ... -
在线调整大数据表的结构的方法
2010-03-09 09:46 1761我们经常会遇到修改一个大数据表的需求,不如给一个大数据表增加字 ... -
利用mysqlbinlog工具恢复MySQL数据库【z】
2010-02-23 16:08 2379From:http://www.phpv.net/html ... -
MySQL性能优化的最佳20+条经验
2010-01-25 16:47 4567From:http://www.uml.org.cn/sjjm ... -
分布式key-value存储方案 Cassandra
2009-12-17 12:03 2775参考:http://www.oschina.net/p/cas ... -
mysql优化 mysql性能调优
2009-11-23 08:09 3785From: http://www.phpcms.cn/2009 ... -
MYSQL的MERGE存储引擎
2009-09-26 12:31 1728From:http://blog.csdn.net/qiuye ... -
MySQL索引分析和优化
2009-09-21 10:31 913From:http://tech.it168.com/a200 ... -
[转贴] 迅速优化MySQL数据库性能
2009-07-03 23:14 1259From: http://tech.techweb.com. ... -
mysqldump导入办法
2009-05-25 13:19 23261From:http://www.linuxidc.com/Li ... -
mysql根据一个表的内容更新另一个表
2009-05-12 15:40 1880update university a,temp_colle ... -
透视MySQL数据库之更新语句
2009-04-18 13:36 1554From: http://tech.techweb.com.c ... -
优化MySQL数据库性能的八种方法
2009-03-26 15:21 975From: http://www.blogjava.net/ ... -
MySQL修改密码方法总结
2009-01-05 11:53 1498From: http://www.knowsky.com/24 ...
相关推荐
springboot结合mysql主从来实现读写分离 一、实现的功能 1、基于springboot框架,application.yml配置多个数据源,使用AOP以及AbstractRootingDataSource、ThreadLocal来实现多数据源切换,以实现读写分离。mysql...
Spring与MySQL读写分离** Spring作为一个灵活的Java应用程序框架,提供了多种方式来支持数据库的读写分离。通过配置数据源、事务管理器以及AOP(面向切面编程)等机制,Spring可以帮助我们透明地处理读写操作的路由...
常见的MySQL读写分离软件有MySQL Proxy、MaxScale、HAProxy、AMQP等。每款软件都有其特点和适用场景,比如MySQL Proxy轻量级但功能相对简单,MaxScale是MySQL公司官方出品,功能强大且易于集成,HAProxy则常用于网络...
在IT行业中,数据库读写分离...总之,通过SpringBoot实现MySQL读写分离,不仅提高了系统的可扩展性和稳定性,还降低了单点故障的风险。在实际项目中,需要根据业务需求和系统规模,灵活选择合适的技术方案和配置策略。
### 使用mysql-proxy实现MySQL读写分离 随着业务规模的不断扩大,数据库系统往往成为整个系统中的瓶颈之一。为了提高系统的响应速度以及数据处理能力,一种常用的技术手段就是采用**读写分离**的方式。读写分离的...
MySQL 读写分离实现原理和解决方案 MySQL 读写分离是指将数据库的读写操作分离到不同的服务器上,以提高数据库的性能和可用性。MySQL 读写分离可以通过主从复制实现,即一个主库和多个从库。主库负责写操作,从库...
本文将深入探讨如何利用Spring AOP(面向切面编程)实现应用层的MySQL读写分离,并结合一主多从的配置来进行详细讲解。 首先,我们需要理解MySQL的主从复制机制。在主从复制中,数据的写操作(INSERT、UPDATE、...
### MySQL读写分离及主从同步延时解决方案 #### 一、引言 在现代互联网应用中,随着用户量的增长和业务复杂度的提高,单一数据库服务器往往难以满足高并发场景下的性能需求。为了有效应对这种挑战,许多企业选择了...
基于SpringBoot,来实现MySQL读写分离技术.zip基于SpringBoot,来实现MySQL读写分离技术.zip基于SpringBoot,来实现MySQL读写分离技术.zip基于SpringBoot,来实现MySQL读写分离技术.zip基于SpringBoot,来实现MySQL...
### MySQL读写分离集群最佳实践 #### 一、概述 在现代互联网应用中,随着数据量的不断增长以及用户访问量的激增,单一数据库服务器往往难以满足高性能、高可用性的需求。为了应对这一挑战,一种常见的解决方案是...
在进行MySQL读写分离配置前,我们需要确保有一个稳定的环境。本次配置环境为CentOS 7.2,并使用MySQL 5.7版本。 - **主数据库服务器(Master)**:192.168.206.100 - **从数据库服务器(Slave)**:192.168.206.200...
mysql读写分离 中间件amoeba配置文件配置号的改几个参数就可以直接用https://blog.csdn.net/z13615480737/article/details/79951505 参考这个改2个文件就可直接用
### MySQL读写分离实现 #### 一、MySQL读写分离概述 MySQL的读写分离是一种常用的数据库优化技术,主要用于提高数据库系统的并发处理能力和可用性。它通过将数据查询(读操作)与数据更新(写操作)分布在不同的...
在linux下用于部署读写分离的中间件maxscale。它是实现mysql数据库的读写分离的
基于Mycat实现Mysql读写分离以及分库分表详解 本文档详细介绍了基于Mycat实现Mysql读写分离以及分库分表的技术,涵盖了Mycat安装、配置、读写分离、分库分表等多方面的知识点。 一、读写分离 Mycat读写分离是指将...
构建高性能web之路mysql读写分离实战 本文将详细介绍如何构建高性能的Web应用程序之路的MySQL读写分离实战。读写分离是MySQL高性能解决方案之一,将读写操作分离到不同的数据库服务器上,以提高数据库的性能和可...
本教程将通过一系列视频和文档,详细讲解如何在MySQL环境中实现读写分离。 首先,我们来看“11-主从复制的原理.avi”。主从复制是实现读写分离的基础,它是指在一个MySQL集群中,一个节点(主节点)负责数据的写入...
MySQL主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy/Amoeba)来提升数据库的并发负载能力 这样的方案来进行部署与实施的