• SqlServer 局域网内不能连接对方数据库?


    一直都是连接的远程测试服务器的数据库,今天想把自己的数据库开放出来让公司同事连接,竟然连接失败!转了很大一个圈终于搞定了。

    接下来就把这次心历路程发出来,希望能帮助到有需要的博友。

    PS: 我和同事的数据库是 sqlserver2008,sql2000/2005请做参考。

    因为是把我的机器开放出来让同事连,所以以下把 本机 称作 服务器,同事机 称作 客户端

    一、telnet服务器

      首先想到用 telnet命令 做连接测试

      因为默认sqlserver服务占用的是1433端口,所以在客户端输入dos命令

      telnet 128.0.*.*  1433  // (128.0.*.* 是 服务器IP地址)

      毫无疑问,连接失败。

      

      怎么解决呢?

      1.关闭防火墙

      首先想到是不是被防火墙阻止了,在服务器端打开控制面板->windows防火墙,点击 关闭

      然后,再一次在客户端 输入dos命令 telnet 128.0.*.*  1433

      好吧,依然连接失败。

      2.打开 sqlserver 配置管理器,修改配置(服务器端)

      不只是防火墙的问题,我还是看看sqlserver的配置是否出了问题吧

      开始->所有程序->Microsoft SQL Server 2008->配置工具->SQL Server 配置管理器

      双击打开 SQL Server 配置管理器(本地) 折叠菜单下的 SQL Server 网络配置,点击查看SQLEXPRESS的协议

      原来我的 管道协议Name pipes 和 TCP/IP 协议 都被禁用了!

      右键 启用

      

      SQL Native Client 10.0 配置菜单下的 客户端协议 也做如上改动,启用这2个协议。

      这下在客户端 输入dos命令 telnet 128.0.*.*  1433,终于连接成功了。

      

    --------------------------------------------------------------------------------------------------------------------------------------------------------

      当然,如果你的SQL Server服务没有启动,那肯定是连接不上的。

      同样是配置管理器,点击 SQL Server 服务,查看到该服务运行的状态,如果是停止状态,就要点选服务,右键 启动 了

      

      有些时候启动服务会报错?会不会是你的1433端口被占用了?

      在dos窗口下输入命令 netstat -ano | Find "1433"

      

      成功找到,表明确实被占用了,最后一个是占用该端口的进程ID。

      PS: 当然,我这里被占用的就是SQL Server服务本身;因为我已经启用该服务了啊,看上图,进程ID是不是1496?

      这个时候,你要么kill掉改进程,要么就该端口啦。杀进程太暴力我就不讲了,改端口的话:

      还是SQL Server网络配置,点击SQLEXPRESS的协议,看见TCP/IP协议了么?

      这次,右键 TCP/IP协议  点击 属性,切换到 IP地址 这一栏,修改每个IP的 TCP端口 为你想指定的端口(这个端口不能再被占用啦)

      PS: 直接修改 IPAll 里面的端口应该也是可以的。见下图(红色区域中的数字就是你要修改的端口了)

      

      重新启动一下SQL Server 服务吧。

    --------------------------------------------------------------------------------------------------------------------------------------------------

    好了,已经可以成功 telnet 了,我再用sa账户连接一次数据库看看。

    还是失败!我在服务器端用sa账户也是连接失败!

    二、修改数据库配置属性(服务器端)

      既然如此,应该是sa账户出现了问题,我查查看

      开始->所有程序->Microsoft SQL Server 2008->SQL Server Management Studio

      如果你没有这个管理工具,那就装一下吧

      先用localhost,身份验证选择 ”windows身份验证“登录进去(这个应该是可以的吧)

      右键localhost,选择属性,点击 安全性,修改 服务器身份验证 为 “SQL Server 和 windows 身份验证”

      

      同时,在左边的 选择页 点击 连接 ,找到 ”允许远程连接到此服务器“,勾选上该选项。

      这下,我终于连接上了。

    PS: 鉴于该篇博文是在第二天才写的,中间发生的一些其他问题我暂时回想不起来,如果有博友遇到了其他问题,可以在下面留言。

      看看大家会给出什么解决办法。

      

      

      

      

      

  • 相关阅读:
    886. 求组合数 II(模板)
    885.求组合数 I(模板)
    线性同余方程(同余+扩展欧几里得模板)
    扩展欧几里得(模板)
    乘法逆元(模板)
    求欧拉函数(模板)
    最大公约数(欧几里得算法/辗转相除法)
    求约数之和
    New beginning~
    CSP-S 2019游记
  • 原文地址:https://www.cnblogs.com/3teeth/p/3345614.html
Copyright © 2020-2023  润新知