数据库远程调用大家是否听过?

所谓数据库远程调用,其含义可以大致这样理解。有一台服务器A,上面安装了数据库,可能是MySQL也可能是SQLServer,还有一台服务器B,上面是网页代码。现在要用B服务器上的代码去连接A服务器上的数据库,这样一个过程就叫做数据库远程调用。其远程两字的含义就是数据库和网站不在一台服务器上,非本地读取,所以称为远程。

要实现数据库远程调用,必须确保数据库所在的A服务器开放了数据库端口。我们熟知的MySQL的端口是3306,SQLServer的端口是1433。同时还需确保没有对网站服务器B的IP进行限制,也就是说从B服务器上能telnet到A服务器。具体命令是:telnet A服务器IP 1433或telnet A服务器IP 3306。两个条件缺一不可,只有既开放了IP连接,又开放了端口,才能保证远程调用成功。

那么,常见的无法远程调用数据库的原因有哪些呢?主要还是在数据库A服务器的防火墙设置上。Windows服务器上其实有三种防火墙设置,一种是网络属性里面的防火墙,还有一种是TCP/IP限制,第三种是本地安全策略里面的IP策略。现在空间商比较流行的阻止远程调用的办法就是在本地安全策略里面设置。这个策略设置是由一组向导构成,其设置流程是:源地址(一般设置成任何)->目标地址(一般设置成我的IP地址)->协议类型(一般选择TCP)->从任意端口,到此端口(一般是1433或3306)。这样就设置好了,如果需要对某个网站服务器的IP开放,那么只要再添加一条策略,把这个IP单独设置成允许即可。

数据库远程调用也是一把双刃剑,存在优缺点。其优点就是只要数据库服务器固定了,就可以从多个网站服务器来调用他,从而实现多系统公用一个数据库资源。而缺点也显而易见,如果这台数据库服务器挂了,则全部系统都无法使用。另外一个缺点就是,如果数据库服务器和网站服务器不在同一个机房,尤其是一个电信一个联通的话,由于互联互通的限制,从网站远程调用数据库将变得非常缓慢,数据库查询和读写的速度也大大降低。

返回行业资讯