mysql多线程并发读写,mysql读写分离的好处
完整的mysql读/写隔离环境包含以下部分:
客户端APP应用程序
? 数据库代理? 数据库群集
在这次实战中,APP应用程序客户端基于c3p0连接后端的数据库代理。 数据库代理管理客户端实际访问数据库的路由策略,并采用开源框架amoeba。 数据库群集采用了mysql的master-slave复制方案。 环境整体结构图如下所示。
?
实战程序和详细情况
一、构建mysql的主存储区环境
1 )分别在主机1 (10.20.147.110 )和主机10.20.147.111 )上安装MySQL (5.0. 45 )。 具体的安装方法在官方文档2 )的构成中
首先编辑/etc/my.cnf,添加以下配置:
log-wxdjy=mysql-wxdjy #slave基于此log-wxdjy创建复制服务器- id=1# master的标签
为wdjylog-do-db=amoeba _ study # master-slave添加特定数据库,并添加复制专用用户。
mysqlgrantreplicationslaveon *.* to repl @ 10.20.147.111 identified by ' 11111 '; 重新启动mysql以启用配置。 /etc/init.d/mysqld restart最后检查master的状态。
3 ) slave设置
首先编辑/etc/my.cnf,添加以下配置: 服务器- id=2# Slave的标记
设置生效后,设置与主机的连接。
mysql CHANGE MASTER TO
- MASTER_HOST='10.20.147.110 ',- MASTER_USER='repl ',
- MASTER_PASSWORD='111111 ',
- master _ log _ file=' MySQL-wxdjy.000003 ',- MASTER_LOG_POS=161261;
其中MASTER_HOST是master机器的ip,MASTER_USER和MASTER_PASSWORD是刚才添加到master的用户,MASTER_LOG_FILE和master _ Lord
最后启动slave: mysql start slave;
4 )确认主Slave构建有效
通过查看slave计算机上的log(/var/log/mysqld.log ) :
10070310336051336042 [ note ] slavei/o thread : connectedtomaster
' repl@10.20.147.110:3306 ',replicationstartedinlog ' MySQL-wxdjy.000003 ' at position 161261
以上信息证明构建成功,有问题的话构建可以在此log中查找原因的数据库代理
在这次实战中,数据库代理采用amoeba,其相关信息可以参考官方文档,但在此不再详细说明1 )安装amoeba
下载amoeba(1.2.0-ga )并解压缩到本地) d : (open source (amoeba-MySQL-1.2.0-ga )后,安装2 ) amoeba配置完成
首先,设置proxy连接和每个后端mysql服务器的连接信息
(d :\open source\amoeba-MySQL-1.2.0-ga\conf\\ amoeba.XML ) :
1.2.3.80664.5.6.9.10.2011.12.13.3014.15
16.3017.18.19.12820.21.22 .真23.24.25.root 26.27.28.root 29。
5 .默认管理器
ty6.7.8. 33069.10.11.10.20.147.110
rty 12. amoeba_study
13.14.15.root 16.17.18.19.20.21.22.23.ableobjectpool (24.20025.200