远程无法连接服务器数据库的原因和解决办法

手册/FAQ (338) 2016-01-06 09:59:09

      如果您的网站程序和数据库不在同一台服务器上,在连接数据库的时候,如果发生连接错误,一般是以下原因造成的:

 

   1、没有在数据库管理面板中设置远程连接IP造成的。

 

  说明:为了提高操作系统的安全性,所有使用了星外安全包的用户,在导入ipsec策略后,SQL2000所使用的1433端口及MySQL使用的3306端口就会自动被关闭。如果您需要在不同的服务器之间连接数据库,您就需要在数据库管理面板中设置远程连接IP才能远程连接数据库。

 

  解决办法:您的数据库用户如果需要远程连接服务器的1433或3306端口,您应该让这个用户自己登陆[虚拟主机管理平台]的用户区,点数据库管理,点数据库面板中的设置远程IP,将这个用户自己的远程连接IP填写进去,平台就会自动允许这个IP远程连接服务器的1433或3306端口。

 

  特别说明:如果你在数据据库面板中输入的远程IP不对,也会造成无法连接的问题,如果你关了IP策略后就能正常连接就是因为你输入的远程IP不对造成的。对于双线服务器来说,对方的远程IP很可能和网卡中看到的IP不一样,具体是什么只有测试才知道。测试办法:在你的数据库服务器上做一个能显示IP的ASP网页,让远程连接的电脑访问这个ASP网页,显示的IP才是真正的远程连接IP。

 

   2、您自己在操作系统中启用了Windows自带的防火墙造成的。

 

  说明:如果您使用了星外的安全包,Windows自带的防火墙是不需要启动的,如果您不小心启动了它,就会造成1433及3306端口被完全关闭,也就会造成远程无法连接SQL2000及MySQL了。

 

  解决办法:在这台服务器上,找到网卡属性,找到防火墙的设置,点关闭就可以解决了。

 

   3、您自己在操作系统中启用了网卡属性中的TCP/IP端口过滤造成的。

 

  说明:如果您使用了星外的安全包,网卡属性中的TCP/IP端口过滤是不需要启动,如果您不小心启动了它,就会造成1433及3306端口被关闭,也就会造成远程无法连接SQL2000及MySQL了。

 

  解决办法:在这台服务器上,找到网卡属性,找到TCP/IP端口过滤的设置,点关闭就可以解决了。

 

   4、您自己在操作系统中安装了独立的防火墙(或杀毒)软件关了这些端口造成的。

 

  说明:如果您使用了星外的安全包,独立的防火墙软件,一般是不需要安装的,如果您不小心安装了它,就会造成1433及3306端口被关闭,也就会造成远程无法连接SQL2000及MySQL了。

 

  解决办法:删除这些独立的防火墙软件。

 

   5、您的两台服务器所在的机房在路由器上作了限制造成的。

 

  说明:有少量的机房为了防止蠕虫病毒,强行在路由器上限制了远程访问1433及3306端口,就会造成远程无法连接SQL2000及MySQL了。

 

  解决办法:联系机房服务器所有的机房解除限制。

 

   6、您的服务器安装了SQL2000,但是没有安装SQL2000的sp4补丁造成的。

 

  说明:如果已排除了上述的1,2,3,4,5点的问题,您可以在数据库服务器上,在dos中运行netstat -an再看看返回的结果中有没有1433端口存在。如果有1433,就表明是前面的1,2,3,4,5点的问题造成的。如果返回的结果中查看不到显示有1433端口,可能的原因是,你的SQL 2000没有安装sp4,注意!!sp4解压后是要安装4的!!!!!!!!!!!!!!!!操作系统自动关了1433端口,就会造成远程无法连接SQL2000了。

 

  解决办法:下载SQL200的sp4安装好后重启服务器就会正常。如果装了sp4,还是无法找到1433不行,就要重装SQL 2000及sp4了。

 

   7、您在远程连接时输入的数据库用户名密码不对造成。

 

  说明:您可以用以下的方式检查服务器上的1433端口是否打开,在您的网站服务器上,在在dos中运行telnet 服务器IP 1433 如果能连接就表明端口是打开的。那么,就是您在远程连接数据库时输入的数据库用户名密码不对造成了无法连接。

      

      如果不能连接,请按上述的1,2,3,4,5,6点来进行检查。

 

  解决办法:重新改正确密码,再重新连接。

THE END