本帖最后由 a260881071 于 2010-11-23 12:19:38 编辑

解决方案 »

  1.   

    远程连接sql server 2000服务器的解决方案
                                            ----转自:飞狐小屋
    由于特定需求,最近实验室需要远程连接外地的sql server 2000服务器,最开始怎么连也连不上,出现了很多问题,但是在今天上午,借用实验室的测试条件(一个公网IP,两个教育网静态IP),终于调试通过,也算是完成了老师的任务,在这里写下自己的心得,参考了很多网上的文章和论坛里的问题,希望对有此需要的有帮助。不完善之处,也请留言。废话少说,进入主题。
    步骤:
    一 看ping 服务器IP能否ping通。
       这个实际上是看和远程sql server 2000服务器的物理连接是否存在。如果不行,请检查网络,查看配置,当然得确保远程sql server 2000服务器的IP拼写正确。二 在Dos或命令行下输入telnet 服务器IP 端口,看能否连通。
    如telnet 202.114.100.100 1433
    通常端口值是1433,因为1433是sql server 2000的对于Tcp/IP的默认侦听端口。如果有问题,通常这一步会出问题。通常的提示是“……无法打开连接,连接失败"。
    如果这一步有问题,应该检查以下选项。
       1 检查远程服务器是否启动了sql server 2000服务。如果没有,则启动。
       2 检查服务器端有没启用Tcp/IP协议,因为远程连接(通过因特网)需要靠这个协议。检查方法是,在服务器上打开开始菜单->程序->Microsoft SQL Server->服务器网络实用工具,看启用的协议里是否有tcp/ip协议,如果没有,则启用它。
       3 检查服务器的tcp/ip端口是否配置为1433端口。仍然在服务器网络实用工具里查看启用协议里面的tcp/ip的属性,确保默认端口为1433,并且隐藏服务器复选框没有勾上。
         事实上,如果默认端口被修改,也是可以的,但是在客户端做telnet测试时,写服务器端口号时必须与服务器配置的端口号保持一致。如果隐藏服务器复选框被勾选,则意味着客户端无法通过枚举服务器来看到这台服务器,起到了保护的作用,但不影响连接,但是Tcp/ip协议的默认端口将被隐式修改为2433,在客户端连接时必须作相应的改变。
         4 如果服务器端操作系统打过sp2补丁,则要对windows防火墙作一定的配置,要对它开放1433端口,通常在测试时可以直接关掉windows防火墙(其他的防火墙也关掉最好)。
      5 检查服务器是否在1433端口侦听。如果服务器没有在tcp连接的1433端口侦听,则是连接不上的。检查方法是在服务器的dos或命令行下面输入
     netstat -a -n 或者是netstat -an,在结果列表里看是否有类似 tcp   127.0.0.1 1433   listening 的项。如果没有,则通常需要给sql server 2000打上至少sp3的补丁。其实在服务器端启动查询分析器,输入 select @@version 执行后可以看到版本号,版本号在8.0.2039以下的都需要打补丁。
        如果以上都没问题,这时你再做telnet 服务器ip 1433 测试,将会看到屏幕一闪之后光标在左上角不停闪动。恭喜你,你马上可以开始在企业管理器或查询分析器连接了。三 检查客户端设置
        程序->Microsoft SQL Server -> 客户端网络使用工具。像在服务器网络实用工具里一样,确保客户端tcp/ip协议启用,并且默认端口为1433(或其他端口,与服务器端保持一致就行)。四 在企业管理器里或查询那分析器连接测试
       企业管理器->右键SQlserver组->新建sqlserver注册->下一步->写入远程IP->下一步-> 选Sqlserver登陆->下一步->写入登陆名与密码(sa,password)->下一步->下一步->完成
       查询分析器->文件->连接->写入远程IP->写入登录名和密码(sa,password)->确定
       通常建议在查询分析器里做,因为默认情况下,通过企业管理器注册另外一台SQL Server的超时设置是4秒,而查询分析器是15秒。
       修改默认连接超时的方法:
         企业管理器->工具->选项->在弹出的"SQL Server企业管理器属性"窗口中,点击"高级"选项卡->连接设置->在 登录超时(秒) 后面的框里输入一个较大的数字
         查询分析器->工具->选项->连接->在 登录超时(秒) 后面的框里输入一个较大的数字
         通常就可以连通了,如果提示错误,则进入下一步。五  错误产生的原因通常是由于SQL Server使用了"仅 Windows"的身份验证方式,因此用户无法使用SQL Server的登录帐户(如 sa )进行连接。解决方法如下所示:
       1 在服务器端使用企业管理器,并且选择"使用 Windows 身份验证"连接上 SQL Server。
    2 展开"SQL Server组",鼠标右键点击SQL Server服务器的名称,选择"属性",再选择"安全性"选项卡。
    3 在"身份验证"下,选择"SQL Server和 Windows "。
    4 重新启动SQL Server服务。(在dos或命令行下面net stop mssqlserver停止服务,net start mssqlserver启动服务,也是一种快捷的方法)。附注:在连接本地服务器时,通常使用的是命名管道协议(在服务器网络实用工具里可以看到启用的协议有这个),默认端口是445,因此在本地能连通是不能说明什么问题的,连接远程服务器是完全不同的协议) 
      

  2.   

    在与SQL Server建立连接时出现与网络相关的或特定与实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且SQL Server 已配置为允许远程连接。provider:命名管道提供程序,error:40 -无法打开到sql server的连接)(microsoft sql server,错误:53)
      

  3.   

    请确认服务器端启用TCP/IP协议了吗?
    SQL Server状态管理员中的.
      

  4.   

    如何打开sql server 2005 的1433端口配置工具->Sql Server Configuration Manager->MSSQLSERVER的协议看看TCP/IP协议是否启动,如果启动,右键菜单点"属性" ,在分页菜单中选"IP地址",把"IP1"和"IP2"中"TCP端口"为1433,"已启用"改为"是"配置工具->Sql Server Configuration Manager->SQL Native Client 配置->客户端协议->TCP/IP选择TCP/IP右键菜单中"属性",确认"默认端口"是1433,"已启用"为"是“SQL Server 2005 远程连接配置TCP/IP属性. 
    Surface Area Configuration --> Database Engine --> Remote Connections --->Using TCP/IT SQL Server 外围应用配置器—服务和连接外围配置—database englie—远程连接—启用(远程连接的TCP/IP和named pipes)  
    SQL Server Configuration Manager—SQL2005网络配置—启用TCP/IP和named pipes
    -----------------------------------------------------------------------------------------
    一般按如上即可. 其他说明见下: 
    sqlserver2005(Express版),为了便于管理,你还需要去下一个manage管理器,微软的官方网站有 
    下,安装好manage管理器后,在程序中连接sqlserver2005,下面几点是要注意的。 
          1. 开启sql2005远程连接功能,开启办法如下, 
              
    配置工具->sql 
    server外围应用配置器->服务和连接的外围应用配置器->打开MSSQLSERVER节点下的Database Engine 
    节点,先择"远程连接",接下建议选择"同时使用TCP/IP和named pipes",确定后,重启数据库服务就可以了. 
          2.登陆设置改为,Sql server and windows Authentication方式同时选中,具体设置如下: 
            
    manage管理器->windows 
    Authentication(第一次用windows方式进去),->对象资源管理器中选择你的数据服务器--右键>属 
    性>security>Sql server and windows Authentication方式同时选中. 
          3:设置一个Sql server方式的用户名和密码,具体设置如下: 
        manage管理器->windows Authentication>new query>sp_password null,'sa123456','sa' 
        这样就设置了一个用户名为sa ,密码为:sa123456的用户,下次在登陆时,可以用Sql server方式, 
    用户名为sa ,密码为:sa123456的用户进数据库了. 
          4: 做完上面三步后,这样写连接字符串就可以顺利进入数据库了, 
            (server=.\\sqlexpress;uid=sa;pwd=sa123456;database=master"; 
    其它版本,做如下設置 程序—Microsoft SQL Server 2005—配置工具—SQL Server 外围应用配置器—服务和连接的外围应用配置器— 
    1、MSSQLserver(实例名)—DataBase Engine—远程连接—(设置选项) 
    在下方选项 
    2、SQL Server Browser—服务(停止时只本机访问) 
    3、程序—Microsoft SQL Server 2005—配置工具—SQL Server Configuration Manager—网络连接协议-选择实例对应协议—启用(shard memory、Named Pipes、TCP\IP) 
    注: SQL Server 浏览器程序以服务的形式在服务器上运行。SQL Server 浏览器侦听对 Microsoft SQL Server 资源的传入请求,
    并提供计算机上安装的 SQL Server 实例的相关信息。
    SQL Server 浏览器可用于执行下列三种操作: 
    浏览可用服务器 
    连接到正确的服务器实例 
    连接到专用管理员连接 (DAC) 端点 
    SQL Server Browser 服务 (sqlbrowser) 为数据库引擎 和 SSAS 的每个实例提供实例名称和版本号。
    SQL Server 浏览器随 Microsoft SQL Server 2005 一起安装,
    为该计算机上运行的早期版本的 SQL Server(从 Microsoft SQL Server 7.0 开始)提供此服务
      

  5.   

    ip1,ip2,ip3都改了,还 是没用。连接时还是一样的错误。
      

  6.   

    telnet 服务器IP 1433 (在客户端操作) 找不到。
    telnet 服务器IP 1433 (在服务端操作)找得到。说明SQL SERVER服务本身设置没有问题你把服务器端的防火墙关闭下就可以了
      

  7.   

    补充:服务与连接的外围配置器中将 “同时使用TCP/IP 和named pipes” 选项勾上
      

  8.   

    顶一下,昨天也碰到了同样的问题。该设置的设置,该重启的重启。问题如同楼主内: telnet 1433   ok。
    外: telnet 1433   lost。出问题的之前,打了两个补丁。应该不关事。
      

  9.   

    问题找到了,  翻开服务器日志 发现大量的SA登陆失败记录  :这么多的失败记录不做解释估计问题是:1433端口堵塞解决办法:更改默认端口,避开大量的SA扫描