Mysql读写分离
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Mysql读写分离,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5064字,纯文字阅读大概需要8分钟。
内容图文
![Mysql读写分离](/upload/InfoBanner/zyjiaocheng/471/db734ebebfe64045bfa4ea026f94a890.jpg)
1)开启数据库服务
service mysqld start
2)所有数据库创建库、表结构一致,设置表记录初始值不一样(验证代理是否实现读写分离)
进入IP 1.1与1.2数据库服务器创建库、表结构一致,表记录不一样。
[root@data ~]mysql -uroot -p
mysql> create database test300; //在IP 1.1与1.2上创建相同库
mysql> create table test300.a (id int); //同上创建相同表结构
mysql>insert into test300.a values(1); //IP 1.1插入记录是1
mysql>insert into test300.a values(2); //IP 1.2插入记录是2
3)在两台数据库服务器上分别授权允许代理服务器连接自己
在IP 1.1与1.2上做相同的授权给同一个用户,@地址是匹配所有
mysql>grant all on *.* to proxyuser@’%’identifiedby‘123’;
4)测试授权用户能否从mysql代理服务器访问后端的2台数据库服务器
在代理服务器192.168.1.254上登陆
[root@data ~]mysql -h192.168.1.1 -uproxyuser -p123
[root@file ~]mysql -h192.168.1.2 -uproxyuser -p123
2、安装mysql-proxy并配置
1)mysql-proxy(代理软件)
客户端将请求发给代理,由代理区分读写操作,将读操作发送给从数据库服务器,写操作发送给主数据库服务器
mysql –hmysql-proxy的ip –u用户名 –p密码 //客户端直接访问IP 1.254
2)停止代理服务器的mysql服务,释放3306端口,给mysql-proxy代理软件用
#service mysql stop #chkconfig--level 35 mysql off
安装需要软件包
**linux6中lua,lua-devel已包含在mysql-proxy中
lua-5.0.2-1.el5.rf.i386.rpm
lua-devel-5.0.2-1.el5.rf.i386.rpm
mysql-proxy-0.8.3-linux-rhel5-x86-64bit.tar.gz
mysql-proxy 默认监听3306端口
3)安装提供代理服务的软件mysql-proxy
mysql-proxy软件是用lua语言编写,所以系统上必须安装lua包
[root@dai ~]# rpm -qa | grep lua
lua-devel-5.0.2-1.el5.rf
lua-5.0.2-1.el5.rf
解压mysql-proxy包到指定位置下
[root@seven~]# tar -zxvf mysql-proxy-0.8.3...64bit.tar.gz -C /usr/local/
[root@seven~]# cd /usr/local
[root@sevenlocal]# mv mysql-proxy... mysql-proxy //将文件夹改名,方便访问
/usr/local/mysql-proxy下的文件夹的作
bin 启动服务脚本
include 头文件
share 功能脚本
lib 库文件
libexec 可执行命令
#ls mysql-proxy/share/doc/mysql-proxy/
rw-splitting.lua //实现读写分离功能的脚本
#ll /usr/local/proxy/share/doc/mysql-proxy/rw-splitting.lua //查看权限限
#chmod +x/usr/local/proxy/share/doc/mysql-proxy/rw-splitting.lua //添加执行权限
4)启动代理服务
格式:./mysql-proxy –P 代理服务器ip:指定端口 -r 读服务器ip:指定端口 -b 写服务器ip:端口 -s(掉用执行脚本)../usr/local/mysql-proxy/share/doc/mysql-proxy/ rw-splitting.lua &
说明:&表示后台运行
[root@sevenbin]# /usr/local/mysql-proxy/bin/mysql-proxy \
-P 192.168.1.254:3306-r 192.168.1.2:3306 -b 192.168.1.1:3306 \
-s/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua &
2014-02-18 14:26:51: (critical) plugin proxy 0.8.3started //出这句代表成功
停止:只能杀进程 #pkill -9 mysql-proxy
杀进程号 #kill 9 %1
5)查看mysql代理服务是否处于运行状态
[root@dai~]# jobs //查看后台是否运行
[1]+ Running /usr/local/mysql-proxy/bin/mysql-proxy-P 192.168.1.254:3306 -r 192.168.1.23:3306 -b 192.168.1.100:3306 -s/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua &
6)测试mysql代理服务器的读写分离功能
**proxy服务器也需创建与1.1、1.2数据库服务器库、表结构一致的库表。
客户端用授权账号连接代理服务器,代理服务器自动连接数据库服务器测试读写分离
# mysql –h192.168.1.254 -uproxyuser -p123
mysql>insert into test300.a vales(100);//因没有到并发数,此时客户端和1.1上都能看到100这条记录。
在客户机上开5或6个终端分别如下操作:
# mysql –h192.168.1.3 -uproxyuser -p123
mysql> select * from test300.a;
当第5或第6个终端的时候,因为达到了并发数,再执行select * from test300.a;语句,只能看到:1.2中的记录,再插入记录后,记录会写入负责写的服务器1.1,客户端将看不到这条记录。
7)若想客户端立马看到,还需将写读的服务器,做成主从服务器
写服务器192.168.1.1:→主服务器
读服务器192.168.1.2:→从服务器
在主服务器上授权从服务器:
#mysql -uroot -p123456
mysql>grant all on *.* to slaveuser@192.168.1.2 identified by ‘123’;
从服务器上登录:
#mysql -h192.168.1.1 -uroot -p123
mysql> select * from test300.a;
此时,客户机上插入记录,1.2上就能立马看到了
8)修改主配置文件—并发数
** 并发数不能设置为0**
#vim /usr/local/mysqlproxy/share/doc/mysql-proxy/rw-splitting.lua
min_idle_connections = 4
max_idle_connections = 8
问答:
1 mysql代理服务器的并发连接达到(4或4+1)个时(区分用户的读写操作)
2 当用户的并发连接数没有超过指定的最小并发连接阀值时,mysql代理服务器如何分发用户的读写请求(主)
3 当用户的并发连接数超过最小并发连接阀值时,是否能否按照启动mysql代理服务时指定的设置分发用 户的读写请求(能)
4 当用户的并发连接数大于4时,区分用户的读写操作,当用户的并发连接数恢复小于最小并发连接数 后,mysql代理服务如何分发用户的读写请求(一旦区分开来,就会一直保持区分)
本文出自 “Dave-技术博客” 博客,请务必保留此出处http://davewang.blog.51cto.com/6974997/1858580
Mysql读写分离
标签:mysql 读写分离
本文系统来源:http://davewang.blog.51cto.com/6974997/1858580
内容总结
以上是互联网集市为您收集整理的Mysql读写分离全部内容,希望文章能够帮你解决Mysql读写分离所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。