代理数据库:安全高效的数据管理方案 (proxy数据库)

随着互联网的快速发展,数据扮演着越来越重要的角色。无论是商业企业还是个人用户,都面临着巨大数据管理的挑战。数据管理包括数据采集、存储、处理、分析等多个方面。其中,数据库是数据管理中最重要的组成部分。而代理数据库作为一种集中的数据管理方案,能够有效提高数据的安全性和效率,成为越来越多企业和用户的首选。

什么是代理数据库?

代理数据库是一种中间层软件,其主要作用是对真实数据库进行包装和代理,提供高效的访问和安全的存储。代理数据库的目标是隐藏连接细节、性能优化和增加安全性,以帮助应用程序开发人员更好地访问数据库,并提供更可靠的数据管理方案。

代理数据库的优势

1. 提高性能

代理数据库可以避免应用程序直接连接到数据库服务,从而降低了服务器负担,减少了延迟,提高了访问速度。而且,代理数据库可以提供缓存机制,将常用的数据缓存到工作内存中,减少了与服务器的通信次数,进一步提高了性能。

2. 增强安全性

代理数据库可以提供更加细粒度的访问控制,保护数据的安全性。用户可以通过代理数据库实现对不同数据的访问权限控制,以保证数据不被泄露或不当使用。

3. 简化应用程序

代理数据库的出现可以简化应用程序的开发过程。通过代理数据库,开发人员无需关心底层数据库的细节,只需要关心数据的读写操作,从而减少了开发成本和周期。

4. 支持多数据库

代理数据库通常支持多种数据库。这意味着用户可以通过代理数据库管理多个不同类型的数据库,而不必关注每个数据库的细节。

代理数据库的应用场景

1. 企业级应用

企业级应用通常需要管理大量的数据,而代理数据库可以提供高效的管理方案,降低数据管理的成本。另外,在企业级应用中,安全性和可靠性是非常重要的,代理数据库可以有效保护数据的安全性。

2. 云应用

代理数据库可以帮助云应用在不同的平台和数据库之间进行数据管理。云上应用通常需要在多个地理区域部署,而代理数据库可以在不同地理位置之间进行数据的迁移和备份,确保数据的安全性和可靠性。

3. 移动应用

移动应用的普及使得代理数据库成为一种比较新的应用方向。由于移动设备的存储能力有限,而代理数据库可以提供更高效的数据管理方案,可以将移动设备上的数据存储在云端,减轻了设备的负担,提高了移动应用的使用体验。

代理数据库的风险

虽然代理数据库提供了更加高效和安全的数据管理方案,但是也存在一些风险和挑战。

1. 代理数据库性能

代理数据库的性能问题是其面临的主要挑战之一。在大数据量的情况下,代理数据库的性能会受到影响。用户需要根据自身业务需求进行选择和优化。

2. 代理数据库性能优化

优化代理数据库的运行性能是比较困难的。用户需要进行复杂的配置和调优,以获得满意的性能表现。

3. 代理数据库安全

代理数据库安全问题也受到关注。由于代理数据库需要对数据进行传输和缓存,使得数据受到攻击的概率增加。因此,在使用代理数据库时,用户需要注意数据存储和传输的安全性。

代理数据库是一种高效、安全的数据管理方案,其优势主要体现在性能和安全性方面。代理数据库已经被广泛应用于企业级应用、云应用和移动应用等多个领域。但是,代理数据库也面临着一些挑战和风险,如性能问题和安全问题等。因此,在使用代理数据库时,需要进行充分的了解和评估,以保证数据的安全和稳定性。

相关问题拓展阅读:

mysql 如何实现读写分离,用mysql-proxy 或者直接用php连接两个数据库?

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

原理:主服务器(Master)负责网站仿段NonQuery操作,从服务器负责Query操作,用户可以根据网站功能模特性块固定访问Slave服务器,或者自己写个池或队列,自由为请求分配从服务器连接。主从服务器利用MySQL的二中大世进制日志文件,实现数据同步。二进制日志由主服务器产生,从服务器响应获取同步数据库。

具体实现:

1、卖肢在主从服务器上都装上MySQL数据库,windows系统鄙人安装的是mysql_5.5.25.msi版本,Ubuntu安装的是mysql-5.6.22-linux-glibc2.5-i686.tar

windows安装mysql就不谈了,一般地球人都应该会。鄙人稍微说一下Ubuntu的MySQL安装,我建议不要在线下载安装,还是离线安装的好。大家可以参考

这位不知道大哥还是姐妹,写的挺好按照这个就能装上。在安装的时候可能会出现几种现象,大家可以参考解决一下:

(1)如果您不是使用root用户登录,建议 su – root 切换到Root用户安装,那就不用老是 sudo 了。

(2)存放解压的mysql 文件夹,文件夹名字更好改成mysql

(3)在./support-files/mysql.server start 启动MySQL的时候,可能会出现一个警告,中文意思是启动服务运行读文件时,忽略了my.cnf文件,那是因为my.cnf的文件权限有问题,mysql会认为该文件有危险不会执行。但是mysql还会启动成功,但如果下面配置从服务器参数修改my.cnf文件的时候,你会发现文件改过了,但是重启服务时,修改过后的配置没有执行,而且您 list一下mysql的文件夹下会发现很多.my.cnf.swp等中间文件。这都是因为MySQL启动时没有读取my.cnf的原因。这时只要将my.cnf的文件权限改成my_new.cnf的权限一样就Ok,命令:chmod 644 my.cnf就Ok

(4)Ubuntu中修改文档内容没有Vim,更好把Vim 装上,apt-get install vim,不然估计会抓狂。

这时候我相信MySQL应该安装上去了。

2、配置Master主服务器

(1)在Master MySQL上创建一个用户‘repl’,并允许其他Slave服务器可以通过远程访问Master,通过该用户读取二进制日志,实现数据同步。

什么是代理服务器

问题一:什么是代理服务器 举个通俗的例子,比如你家的门坏了,不能走出屋子,你只能借助你家后门并且通过邻居家的门走出屋子。完成这样一个目的,就等于说是借助其他通道到达你想要到达的目的地。

代理服务器也一样,比如本地网络无法直接访问一些网站或者服务器,必须通过一个代理点服务器,那个服务器和你的本地网络是可以直接ping的通的,然后厅袜乎你就必须设置这个代理服务器的一些参数,比如ip,端口,罚后通过这个平台连接到其他网络区域。

问题二:什么是“代理服务器” 如果我告诉你,用代理服务器可以免费访问Internet,可以加速访问速度,可以访问无法直接访问的站点,可以部分解扮悉决网络

IP地址紧缺的问题……,您一定认为,天下哪有这等美事?如果您能耐心看完冗长的本文,您就会确信我说的话毫不夸张,如果应

用得当,可以每月为您节省一笔可观的上网费用,就用不着每个月战战兢兢的跑到电信局一五一十的把血汗钱捐献给ISP了。

代理服务器的工作机制

代理服务器的工作机制很象我们生活中常常提及的代理商,假设你自己的机器为A机,你想获得的数据由服务器B提供,代理服

务器为C,那么具体的连接过程是这样的。

首先,A机需要B机的数据,A直接与C机建立连接,C机接收到A机的数据请求后,与B机建立连接,下载A机所请求的B机上的数据

到本地,再将此数据发送至A机,完成代理任务。

代理服务器存在的理由

或许你要问了,何必这么麻烦呢?A机与B机直接建立不是很好么?请耐心听我讲完,使用代理服务器当然有其存在的合理理由:

1、局域局内没有与外网相连的机器通过内网的代理服务器连接到外网。这个例子,最有说服力的就是小办公室的上网解决方案

了,利用办公室原有的局域网,只要简单的利用一根线、一个合法帐号(在ISP初申请得到拨号号码和用户名和密码),加上一个

简单的代理软件(如Sygate,WinGate,Winrouter)就可以方便的以最小的花费将整个办公室的电脑与互联网络相连接。

2、为了获得更大的速度,通过带宽较大的proxy与目标主机连接。访问台湾部分站点的速度大家相必已经领教过了,如果我们

使用一个位于美国的代理服务器(之所以这里称为选用美国的代理服务器是因为二岸之间尚无直接联接二岸网络的直接通道)如非常

经典的一个代理服务器Proxy.golden:3000,您好桐可以非常明显的感觉出连接速度的改善简直会出乎您的意料。我在网上看到有这

样一个非常形象的例子,现原文引用:因为proxy serve一般都设在比较近的地方。打个比方,比如我在香港要看北京的青年报,

是派人去北京买一份来看,还是从楼下报亭买一份看,两个选择哪一个快?当然是后者。proxy serve就是那个报亭,你想看什么报

尽管向它要。如果有它就马上给你,如果没有就马上去进一批,自己也顺手留一份。

3、同一地区未互联的不同网络通过代理建立连接。还是以上面的列举的代理服务器为例,设置正确之后,我们就可以访问Xoom、

Geocities等一般无法直接访问的站点。当然,需要提醒各位朋友的就是之所以限制这些站点的访问,是因为这些站点存在一些和我

们国家长治久安相背离的内容,所以采取了屏蔽措施,希望大家访问的时候能注意甄别。这种限制是人为的,不同代理服务器对地址

的封锁是不同的,所以一个不行时可以换一个试试。

4、可以免费访问因特网。这是这个文的重头戏。用免费169帐号上因特网已经成为一个公开的秘密了。但是,到现在为止,尚无

一个彻底完全代理解决方案,所以,才有了本文的代理专题介绍。众所周知,中国电信旗下建立的网络有两种,一种是真正意义上

的国际互联网(因拨接号码为一般为163,俗称163),另一种是所谓的中国公用多媒体网(因拨接号码为一般为169,俗称169)。以江苏

地区为例,169用户又分为三类,C类用户拥有网外权,可以直接享受国际互联网的所有服务;另一类称为B类用户,也称注册用户,

使用注册的帐号上网,但只能与以info…….>>

问题三:代理服务器是什么?什么意思? 就是个跳板,你可以通过你的代理服务器去访问其他的网站。比如说你单位的网管设置了只有1台电脑能上网,福的电脑不行,那你如果能在那台电脑上装一个代理服务器软件的话,就能用你的电脑通过那台电脑的代理功能去上网了。

问题四:什么是代理服务器 代理服务器(Proxy)是网络信息的中转站,比方说HTTP代理服务器。我们使用网络浏览器直接链接其他Internet站点并取得网络信息时,需送出Request信号来得到回答,然后对方再把信息传送回来。代理服务器是介于浏览器和Web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,Request信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你。而且大部分代理服务器都具有缓冲功能,就好像一个大Cache,它不断将新取得的数据包存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率。除此之外还有SOCKS代理服务器,其原理大同小异。

主要功能

1)设置用户验证和记账功能,可按用户进行记账,没有登记的用户无权通过代理服务器访问Internet网。并对用户的访问时间、访问地点、信息流量进行统计。2)对用户进行分级管理,设置不同用户的访问权限,对外界或内部的Internet地址进行过滤,设置不同的访问权限。

3)增加缓冲器(Cache),提高访问速度,对经常访问的地址创建缓冲区,大大提高热门站点的访问效率。通常代理服务器都设置一个较大的硬盘缓冲区(可能高达几个GB或更大),当有外界的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时,则直接由缓冲区中取出信息,传给用户,以提高访问速度。

(4)连接内网与Internet,充当防火墙(Firewall):因为所有内部网的用户通过代理服务器访问外界时,只映射为一个IP地址,所以外界不能直接访问到内部网;同时可以设置IP地址过滤,限制内部网对外部的访问权限。

(5)节省IP开销:代理服务器允许使用大量的伪IP地址,节约网上资源,即用代理服务器可以减少对IP地址的需求,对于使用局域网方式接入Internet ,如果为局域网(LAN)内的每一个用户都申请一个IP地址,其费用可想而知。但使用代理服务器后,只需代理服务器上有一个合法的IP地址,LAN内其他用户可以使用10.*.*.*这样的私有IP地址,这样可以节约大量的IP,降低网络的维护成本。

问题五:代理服务器工作原理是什么? 一、代理服务器的概念及工作原理

(一)代理服务器的概念

随着Internet技术的迅速发展,越来越多的计算机连入了Internet。很多公司也将自己公司的局域网接入了Internet。如何快速地访问Internet站点,提高网络的安全性,成为了当今的热门话题。在这种情况下,代理服务器便应运而生了。

1、代理服务器的概念

代理服务器(Proxy Server)是个人网络和Internet服务商之间的中间代理机构,它负责转发合法的网络信息,对转发进行控制和登记。代理服务器作为连接Internet(广域网)与Intranet(局域网)的桥梁,在实际应用中发挥着极其重要的作用,它可用于多个目的,最基本的功能是连接,此外还包括安全性,缓存,内容过滤,访问控制管理等功能。代理服务器,顾名思义就是局域上不能直接上网的机器将上网请求(比如说,浏览某个主页)发给能够直接上网的代理服务器,然后代理服务器代理完成这个上网请求,将它所要浏览的主页调入代理服务器的缓存;然后将这个页面传给请求者。这样局域网上的机器使用起来就像能够直接访问网络一样。并且,代理服务器还可以进行一些网站的过滤和控制的功能,这样就实现了我们控制和节省上网费用。

代理服务器能够让多台没有IP地址的电脑使用其代理功能高速、安全地访问互联网资源。当代理服务器客户端发出一个对外的资源访问请求,该请求先被代理服务器识别并由代理服务器代为向外请求资源。由于一般代理服务器拥有较大的带宽,较高的性能,并且能够智能地缓存已浏览或未浏览的网站内容,因此,在一定情况下,客户端通过代理服务器能更快速地访问网络资源。代理服务器应用的常见例子:拥有上百台电脑的局域网通过一台能够访问外部网络资源的代理服务器而也能访问外部互联网。

2、代理服务器的功能

(1) 充当局域网与外部网络的连接出口

充当局域网与外部网络的连接出口,同时将内部网络结构的状态对外屏蔽起来,使外部不能直接访问内部网络。从这一点上说,代理服务器就充当的网关。

(2)作为防火墙

代理服务器.可以保护局域网的安全,起防火墙的作用。通过设置防火墙,为公司内部的网络提供安全边界,防止外界的侵入。

(3)网址过滤和访问权限限制

代理服务器可以设置IP地址过滤,对外界或内部的Internet地址进行过滤,限制不同用户的访问权限。例如代理服务器可以用来限制封锁IP地址,禁止用户对某些网页进行浏览。

(4)提高访问速度

代理服务器将远程服务器提供的数据保存在自己的硬盘上,如果有许多用户同时使用这一个代理服务器,他们对Internet站点所有的访问都会经由这台代理服务器来实现。当有人访问过某一站点后,所访问站点的内容便会被保存在代理服务器的硬盘上,如果下一次有人再要访问这个站点时,这些内容便会直接从代理服务器磁盘中取得,而不必再次连接到远程服务器上去取。因此,它可以节约带宽、提高访问速度。

(二)代理服务器的工作原理

代理服务器(Proxy Server)的工作原理是:当客户在浏览器中设置好Proxy Server后,你使用浏览器访问所有WWW站点的请求都不会直接发给目的主机,而是先发给代理服务器,代理服务器接受了客户的请求以后,由代理服务器向目的主机发出请求,并接受目的主机的数据,存于代理服务器的硬盘中,然后再由代理服务器将客户要求的数据发给客户。下面我们来详细说明其工作过程:

在网络上,当客户端向服务器端请求数据时,服务器端会随即将所需的数据传给客户端。但是这个服务器可……>>

问题六:代理服务器有什么作用 代理服务器,英文名叫Proxy Server,在日常网络中有很多用途,这里把我们所熟悉的一些作用总结和分析一下,分类说明:

一、共享网络

最常见的可能是用代理服务器共享上网,很多人不知不觉中就在用,比如通过sygate,wingate,isa,ccproxy,NT系统自带的网络共享等,可以提供企业级的文件缓存、复制和地址过滤等服务,充分利用局域网出口的有限带宽,加快内网用户的访问速度,可以解决仅仅有一条线路一个IP,IP资源不足,带局域网很多用户上网的功能,同时可以做为一个防火墙,隔离内网与外网,并且能提供监控网络和记录传输信息的功能,加强了局域网的安全性,又便于对上网用户进行管理。

二、访问代理

加快访问网站速度,在网络出现拥挤或故障时,可通过代理服务器访问目的网站。比如A要访问C网站,但A到C网络出现问题,可以通过绕道,假设B 是代理服务器,A可通过B, 再由B到C。还有一类代理服务器备份有相当数量的缓存文件,如果我们当前所访问的数据在代理服务器的缓存文件中,则可直接读取,而无需再连接到远端Web服务器。这样,加快了访问速度。

三、防止攻击

隐藏自己的真实地址信息,还可隐藏自己的IP,防止被黑客攻击。通过分析指定IP地址,可以查询到网络用户的目前所在地。例如,大家在一些论坛上看到,论坛中明确标出了发帖用户目前所在地,这就是根据论坛会员登录时的IP地址解析的。还有平日里我们最为常用的显IP版QQ,在“发送消息”窗口中,可以查看对方的IP及解析出的地理位置。而当我们使用相应协议的代理服务器后,就可以达到隐藏自己当前所在地地址的目的了。

四、突破限制

代理服务器还可以突破网络限制。比如局域网对上网用户的端口,目的网站,协议,游戏,即时通讯软件等的限制,都可以突破这些限制。举个例子:GOOGLE我们都喜欢用,其实GOOGLE有一个功能就有点类似于代理服务器的功能,就是网页快照,现在网站经常发生变动,地址或者网站关了,网站服务器发生故障了,或者已经更新了,但我们仍然要查以前非常有用的资料,网页快照就排上用场了,Google 以其复杂而全自动的搜索方法排除了任何人为因素对搜索结果的影响,保证了网页排名的客观公正,Google 可以方便、诚实、客观地帮您在网上找到有价值的资料。GOOGLE有一个海量的数据库,如果找不到服务器,Google 储存的网页快照也可救急。虽然网页快照中的信息可能不是最新的,但在网页快照中查找资料要比在实际网页中快得多,这时可以通过加密代理访问Google,再访问其网页快照来救急。

五、掩藏身份

代理服务器知识是黑客基本功,黑客的很多活动都是通过代理服务器, 比如扫描、刺探,对局域网内机器进行渗透,黑客一般攻击的时候都是中转了很多级跳板,才攻击目标机器。隐藏了身份,保证了自己的安全。

六、提高速度

提高,突破下载限制。比如有的网站提供的下载资源,做了一IP一线程的限制,这时候可以用影音传送带,设置多线程,为每个线程设置一个代理。对于限制一个IP的情况很好突破,只要用不同的代理服务器,就可同时下载多个资源,适用于从WEB和FTP 上下载的情况。不过如果是论坛里面的资源,每个用户一个账号,并且限制一账号一IP,代理服务器就突破不了。还有一种情况,比如我们这里,电信的用户上不了联通的电影网站,联通的用户上不了的电信电影网站,这种情况只要电信的找一个联通地代理,IP地址属联通就行。联通找一个电信代理。就可以去电……>>

问题七:什么是 代理服务器 远程服务器 代理服务器是介于浏览器和Web服务器之间的一台服务器。其功能是代理网络用户去取得网络信息。网络信息则是通过代理服务器进行中转的。更重要的是:Proxy Server(代理服务器)是Internet链路级网关所提供的一种重要安全功能,工作主要在开放系统互联(OSI)模型的对话层。

代理服务器就有远足VPN服务器

不使用代理服务器的情况下,用户使用网络浏览器直接连接其他Internet站点取得网络信息时,须发出请求信号来得到回答,然后对方再把信息以数据流方式传送回来。有了代理服务器之后,浏览器向代理服务器发出请求,当代理服务器接收请求信息号,再由代理服务器来取回浏览器所需要的信息并传送给终端用户的浏览器。代理服务器的作用如下。

1.共享网络

如通过Squid、sygate、wingate、isa、ccproxy以及NT系统自带的网络共享等代理服务器访问外部站点的信息。这些代理服务器也都能提供企业级的文件缓存、复制和地址过来等服务。充分利用局域网出口的有限带宽,加快内网用户的访问速度,能解决仅仅有一条线路一个公有IP,在这种公有IP资源严重不足的情况下,满足局域网众多用户同时共享上网的需求。

2.访问代理

现在的网络环境中常常会出现网络拥挤或网络故障。用户通常都会通过代理服务器绕道访问目的站点;另外,代理服务器中通常会备份有相当数量的缓存文件,如果当前所访问的数据在代理服务器的缓存文件中,则可直接读取,而无需再连接到远端Web服务器。这样可以达到加快访问网站速度,节约通信带宽的目的。

3.提高速度

提高,突破一个IP、一个下载线程的限制以及电信和联通的用户互上对方的电影网站下载的限制。

4.突破限制

互联网上有许多开放的代理服务器,客户在访问权限受到限制时,而这些代理服务器的访问权限是不受限制的,刚好代理服务器在客户的访问范围之内,那么客户通过代理服务器访问目标网站就成为可能。通过代理服务器,国内高校使用教育网就能实现访问因特网,这就是高校内代理服务器流向的原因所在。

5.防止攻击

通过代理服务器完成内部主机的访问使主机地址等信息不会发送到外部,隐藏了自己的真实地址信息,还可隐藏自己的IP。更有效地保护了内部主机。

7.方便对用户管理

通过代理服务器,管理员可以设置用户验证和记账功能,对用户进行登记,并对用户的访问时间、访问地点、信息浏览进行统计。没有登记的用户无权通过代理服务器访问Internet

8.隐藏身份

代理服务器使用内部用户访问Interner时受到保护,内部网的用户要对外发布信息就需要使用代理服务器的反向代理功能。这样就不会影响到内部网络的安全性能,起到隐藏身份的目的。

问题八:设置代理服务器有什么用? 其实就是你上面说的那样起到浏览网站和游戏等提速的作用。

专业点的回答就是 (1)设置用户验证和记账功能,可按用户进行记账,没有登记的用户无权通过代理服务器访问Internet网。并对用户的访问时间、访问地点、信息流量进行统计。

(2)对用户进行分级管理,设置不同用户的访问权限,对外界或内部的Internet地址进行过滤,设置不同的访问权限。

(3)增加缓冲器(Cache),提高访问速度,对经常访问的地址创建缓冲区,大大提高热门站点的访问效率。通常代理服务器都设置一个较大的硬盘缓冲区(可能高达几个GB或更大),当有外界的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时,则直接由缓冲区中取出信息,传给用户,以提高访问速度。

(4)连接内网与Internet,充当防火墙(Firewall):因为所有内部网的用户通过代理服务器访问外界时,只映射为一个IP地址,所以外界不能直接访问到内部网;同时可以设置IP地址过滤,限制内部网对外部的访问权限。

(5)节省IP开销:代理服务器允许使用大量的伪IP地址,节约网上资源,即用代理服务器可以减少对IP地址的需求,对于使用局域网方式接入Internet ,如果为局域网(LAN)内的每一个用户都申请一个IP地址,其费用可想而知。但使用代理服务器后,只需代理服务器上有一个合法的IP地址,LAN内其他用户可以使用10.*.*.*这样的私有IP地址,这样可以节约大量的IP,降低网络的维护成本。

希望对你有用

问题九:代理服务器是什么 代理服务器(英文:Proxy),是一种重要的电脑安全功能,也是特殊的网络服务,允许客户端通过它与另一个网络服务进行非直接的连接,也称网络代理。代理服务器有利于保障网络安全,防止攻击。 提供代理服务的计算机或其它类型的网络节点称为代理服务器(英文:Proxy Server),代理服务器中实现网络代理的软件称为代理软件。 具体过程为:客户端首先与代理服务器建立连接,接着发出一个对另外的目标服务器的文件或其它资源的连接请求,代理服务器通过与目标服务器连接或从缓存中取得请求的资源,并返回给客户端。通常在这个过程中,代理服务器可能改变客户端请求或服务器端响应的一些内容以满足各种代理需要。

问题十:大家一般都用什么代理服务器 Shadowsocks

MySQL Proxy怎样配置lua脚本来实现对SQL语句的拦截和修改?

为什么?

Mysql Proxy Lua读写分离设置是本文要介绍的内容,主要是来了解Mysql Proxy的Mysql 分离设置,为了未来MySQL读写分离的需要, 先行对MySQL官方的Mysql Proxy产品进行了初步测试. 以下是测试过程,二进制版Mysql Proxy可以去下载。

1、设置说明

Master服务器: 192.168.41.196 Slave服务器: 192.168.41.197 Proxy服务器: 192.168.41.203

2、安装Mysql Proxy

在Proxy服务器上安装即可. 如果源码方式安装, 需提前安装pkg-config,libevent,glibc,lua等依赖包, 非常麻烦, 建议直接使用二进制版.

# cd /u01/software/mysql # tar -zxvf Mysql Proxy-0.8.1-linux-rhel5-x86-32bit.tar.gz -C /usr/local # cd /usr/local # ln -s Mysql Proxy-0.8.1-linux-rhel5-x86-32bit Mysql Proxy # vi + ~/.bash_profile export PATH=$PATH:/usr/local/Mysql Proxy/bin/ # . ~/.bash_profile

3、Mysql Proxy选项说明

# Mysql Proxy help-all

管理功能裂简选项:

admin-address=host:port 指定一个mysqo-proxy的管理端口, 缺省是4041; admin-username= username to allow to log in admin-password= password to allow to log in admin-lua-script= script to execute by the admin plugin

代理功能选项:

-P, proxy-address= 是Mysql Proxy 服务器端的监听端口, 缺省是4040; -r, proxy-read-only-backend-addresses= 只读Slave的地址和端口, 缺省为不设置; -b, proxy-backend-addresses= 远程Master地址和端口, 可设置多个做failover和load balance, 缺省是127.0.0.1:3306; proxy-skip-profiling 关闭查询分析功能, 缺省是打开的; proxy-fix-bug修正 mysql的libmysql版本大于5.1.12的一个#25371号bug; -s, proxy-lua-script= 指定一个Lua脚本来控制皮棚Mysql Proxy的运行和设置, 这个脚本在每次新建连接和脚本发生修改的的时候将重新调用;

其他选项:

defaults-file=配置文件, 可以把Mysql Proxy的参数信息置入一个配置文件里; daemon Mysql Proxy以守护进程方式运行 pid-file=file 设置Mysql Proxy的存储PID文件的路径 keepalive try to restart the proxy if it crashed, 保持连接启动进程会有2个, 一号进程用来监视二号进程, 如果二号进程死掉自动重启proxy.

4、数据库准备工作

(1)安装半同步补丁(建议)

读写分离不能回避的问题之一就是延迟, 可以考肆握裤虑Google提供的SemiSyncReplication补丁.

(2)给用户授权

在Master/Slave建立一个测试用户, 因为以后客户端发送的SQL都是通过Mysql Proxy服务器来转发, 所以要确保可以从Mysql Proxy服务器上登录MySQL主从库.

mysql> grant all privileges on *.* to ‘u_test’@’192.168.41.203’ identified by ” with grant option;

(3)在Master建立测试表

mysql> create table db_test.t_test (col varchar(10)); mysql> insert into db_test.t_test values (‘testA’); mysql> select * from db_test.t_test; +-+ | col | +-+ | testA | +-+

5、Mysql Proxy启动

(1)修改读写分离lua脚本

默认最小4个更大8个以上的客户端连接才会实现读写分离, 现改为最小1个更大2个:

# vi +40 /usr/local/Mysql Proxy/share/doc/Mysql Proxy/rw-splitting.lua connection pool if not proxy.global.config.rwsplit thenproxy.global.config.rwsplit = { min_idle_connections = 1, max_idle_connections = 2, is_debug = true}end

这是因为Mysql Proxy会检测客户端连接, 当连接没有超过min_idle_connections预设值时, 不会进行读写分离, 即查询操作会发生到Master上.

(2)启动Mysql Proxy

建议使用配置文件的形式启动, 注意配置文件必须是660权限, 否则无法启动. 如果有多个Slave的话, proxy-read-only-backend-addresses参数可以配置多个以逗号分隔的IP:Port从库列表.

# killall Mysql Proxy # vi /etc/Mysql Proxy.cnf admin-username=wangnc admin-password=iamwangnc admin-lua-script=/usr/local/Mysql Proxy/lib/Mysql Proxy/lua/admin.lua proxy-backend-addresses=192.168.41.196:3351 proxy-read-only-backend-addresses=192.168.41.197:3351 proxy-lua-script=/usr/local/Mysql Proxy/share/doc/Mysql Proxy/rw-splitting.lua log-file=/var/tmp/Mysql Proxy.log log-level=debug daemon=true keepalive=true # chmod 660 /etc/Mysql Proxy.cnf # Mysql Proxy defaults-file=/etc/Mysql Proxy.cnf # ps -ef | grep Mysql Proxy | grep -v grep root:16 ?:00:00 /usr/local/Mysql Proxy/libexec/Mysql Proxy defaults-file=/etc/Mysql Proxy.cnf root:16 ?:00:00 /usr/local/Mysql Proxy/libexec/Mysql Proxy defaults-file=/etc/Mysql Proxy.cnf # tail -50f /var/tmp/Mysql Proxy.log

6、客户端连接测试

(1)先停止Slave的复制进程

mysql> stop slave;

(2)连接Proxy端口, 插入数据

# mysql -uu_test -p -h192.168.41.203 -P4040 -Ddb_test mysql> insert into db_test.t_test values (‘testB’); mysql> select * from db_test.t_test; +-+ | col | +-+ | testA | | testB | +-+

(3)多开几个客户端, 连接Proxy端口, 查询数据

# mysql -uu_test -p -h192.168.41.203 -P4040 -Ddb_test mysql> select * from db_test.t_test; +-+ | col | +-+ | testA | +-+

如果查询不到上步新插入的数据, 说明连接到了Slave, 读写分离成功. 在同一线程再插入数据并验证:

mysql> insert into db_test.t_test values (‘testC’); mysql> select * from db_test.t_test; +-+ | col | +-+ | testA | +-+

发现insert操作成功, 但是select不出刚插入的数据, 说明同一线程也读写分离成功. 从日志中可以验证:

# tail -50f /var/tmp/Mysql Proxy.log … 192.168.41.203:current backend = 0 client default db = db_test client username = u_test query= select * from db_test.t_test sending to backend : 192.168.41.197:is_slave: true server default db: db_test server username : u_test in_trans: false in_calc_found : false COM_QUERY: true 192.168.41.203:current backend = 0 client default db = db_test client username = u_test query= insert into db_test.t_test values (‘testC’) sending to backend : 192.168.41.196:is_slave: false server default db: db_test server username : u_test in_trans: false in_calc_found : false COM_QUERY: true

(4)测试完毕后, 启动Slave的复制进程

mysql> start slave;

7、正式环境说明

1、Mysql Proxy当前还只是个测试版, MySQL官方还不建议用到生产环境中;

2、Mysql Proxy的rw-splitting.lua脚本在网上有很多版本, 但是最准确无误的版本仍然是源码包中所附带的rw-splitting.lua脚本, 如果有lua脚本编程基础的话, 可以在这个脚本的基础上再进行优化;

3、Mysql Proxy实际上非常不稳定, 在高并发或有错误连接的情况下, 进程很容易自动关闭, 因此打开keepalive参数让进程自动恢复是个比较好的办法, 但还是不能从根本上解决问题, 因此通常最稳妥的做法是在每个从服务器上安装一个Mysql Proxy供自身使用, 虽然比较低效但却能保证稳定性;

4、Amoeba for MySQL是一款优秀的中间件软件, 同样可以实现读写分离, 负载均衡等功能, 并且稳定性要大大超过Mysql Proxy, 建议大家用来替代Mysql Proxy, 甚至MySQL-Cluster.

proxy数据库的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于proxy数据库,代理数据库:安全高效的数据管理方案,mysql 如何实现读写分离,用mysql-proxy 或者直接用php连接两个数据库?,什么是代理服务器,MySQL Proxy怎样配置lua脚本来实现对SQL语句的拦截和修改?的信息别忘了在本站进行查找喔。


数据运维技术 » 代理数据库:安全高效的数据管理方案 (proxy数据库)