把防火墙关掉,1433端口是sql默认的端口

解决方案 »

  1.   

    在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败--在SQLSERVER2005外围应用配置器里配置->服务与连接->database engine->远程链接
      

  2.   

    远程连接sql server 2000服务器的解决方案   一 看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启动服务,也是一种快捷的方法)。 
      

  3.   

    出现这个提示的时候,防火墙提示有对外的攻击,是向外的某个IP的1433连接,一直在增加,等这个不增加时,数据库就又可以连上了 -->>可以设置防火墙,把1433端口设为例外,这样就不用关闭防火墙了2.2000数据库怎样设置,可以防止恶意的数据库连接?可不可以强制让一个数据库在连接数大时,断开一些呢 
     -->>设置登陆账号和密码,sa密码设置为强密码3、
      

  4.   

    -->在[本地连接属性]的[TCP/IP协议]的[高级]属性
    ---->[高级TCP/IP设置]-[选项]中的[TCP/IP筛选]对话框中进行设置。
    默认是全部启用,可根据受信任区IP或协议等进行设置。
      

  5.   

    不是不能远程连接SQLSERVER,我的意思是说,之前一直是好的,可能是因为有某个站点向外连接太多现在再连接数据库就有问题了,我不太清楚是什么原因
      

  6.   

    刚刚看了一下,好像连接数据库所在的服务器,TCP连接被占满了,导致不能连
    那么在数据库端怎么看出哪个数据库被连接的最多呢SQL2000的,怎么看连接数?
      

  7.   

    sp_who
    提供关于当前 Microsoft® SQL Server™ 用户和进程的信息。可以筛选返回的信息,以便只返回那些不是空闲的进程。语法
    sp_who [[@login_name =] 'login']参数
    [@login_name =] 'login'是 SQL Server 上的用户登录名。login 的数据类型为 sysname,默认值是 NULL。如果没有指定名称,过程将报告全部活动的 SQL Server 用户。login 也可以是特定进程标识号码 (SPID)。若要返回有关活动进程的信息,请指定 ACTIVE。ACTIVE 从报告中排除等待用户下一个命令的进程。返回代码值
    0(成功)或 1(失败)结果集
    sp_who 返回包含以下信息的结果集。 列 数据类型 描述 
    spid smallint 系统进程 ID。 
    ecid smallint 与指定 SPID 相关联的给定线程的执行上下文 ID。 
    ECID = {0, 1, 2, 3, ...n},其中 0 始终表示主或父线程,并且 {1, 2, 3, ...n} 表示子线程。
     
    status nchar(30) 进程状态。 
    loginame nchar(128) 与特定进程相关联的登录名。 
    hostname nchar(128) 每个进程的主机或计算机名。 
    blk char(5) 如果存在阻塞进程,则是该阻塞进程的系统进程 ID。否则该列为零。 
    当与给定的 spid 相关联的事务受到孤立分布式事务的阻塞时,该列将对阻塞孤立事务返回 '-2'。
     
    dbname nchar(128) 进程使用的数据库。 
    cmd nchar(16) 为此进程执行的 SQL Server 命令(Transact-SQL 语句、SQL Server 内部引擎处理等)。 
    sp_who 结果集将根据 spid 值按升序排序。如果是并行处理,则会为特定的 spid 创建子线程。主线程表示为 spid =xxx,并且 ecid =0。其余的子线程同样也是 spid = xxx,但 ecid > 0。这样,将会为该 spid 编号返回多行 — 它们在整个列表中放置该 spid 的位置组合在一起。子线程将随机排列,但父线程除外 (ecid = 0);在该 spid 中,父线程被首先列出。注释
    阻塞进程(可能含有排它锁)是控制其它进程所需要的资源的进程。在 SQL Server 2000 中,所有孤立 DTC 事务的 SPID 都被赋予值 '-2'。孤立 DTC 事务就是不与任何 SPID 相关联的分布式事务。这样,当某一孤立事务阻塞其它进程时,可由其特殊的 '-2' SPID 值来识别该孤立分布式事务。有关更多信息,请参见 KILL。SQL Server 2000 保留从 1 到 50 的 SPID 值以便内部使用,而 51 或更大的 SPID 值则代表用户会话。权限
    执行权限默认授予 public 角色。示例
    A. 列出全部当前进程
    此示例使用没有参数的 sp_who 报告所有当前用户。 USE master
    EXEC sp_who下面是结果集:spid ecid status     loginame       hostname  blk dbname cmd                  
    ---- ---- ------     ------------   --------  --- ------ -----                
    1    0    background sa                       0   pubs   LAZY WRITER          
    2    0    sleeping   sa                       0   pubs   LOG WRITER           
    3    0    background sa                       0   master SIGNAL HANDLER       
    4    0    background sa                       0   pubs   RA MANAGER           
    5    0    background sa                       0   master TASK MANAGER         
    6    0    sleeping   sa                       0   pubs   CHECKPOINT SLEEP     
    7    0    background sa                       0   master TASK MANAGER         
    8    0    background sa                       0   master TASK MANAGER         
    9    0    background sa                       0   master TASK MANAGER         
    10   0    background sa                       0   master TASK MANAGER         
    11   0    background sa                       0   master TASK MANAGER         
    51   0    runnable   DOMAIN\loginX  serverX   0   Nwind  BACKUP DATABASE      
    51   2    runnable   DOMAIN\loginX  serverX   0   Nwind  BACKUP DATABASE      
    51   1    runnable   DOMAIN\loginX  serverX   0   Nwind  BACKUP DATABASE      
    52   0    sleeping   DOMAIN\loginX  serverX   0   master AWAITING COMMAND     
    53   0    runnable   DOMAIN\loginX  serverX   0   pubs   SELECT               
    (16 row(s) affected)B. 列出特定用户的进程
    此示例显示如何通过登录名查看有关单个当前用户的信息。USE master
    EXEC sp_who 'janetl'C. 显示所有活动进程
    USE master
    EXEC sp_who 'active'D. 通过进程 ID 显示特定进程
    USE master
    EXEC sp_who '10' --specifies the process_id
      

  8.   



    exec sp_who 'active'