我有一台安装有sql server 2008的虚拟机,操作系统是32位的windows server 2003 enterprise sp2,计算机名:win2003r2-32-sql2008r2


在另一台win7 64位计算机上,使用 sql server management studio连接这台sql server 2008服务器的时候,填写完整的计算机名及用户、密码,登录失败,如下所示:


win11 netbiosname名称 netbios名称仅限于15_操作系统


检查目标服务器,一切正常,使用ip可以连接,因此应该是计算机名出了问题,使用 nbtstat -a 命令查看:

win11 netbiosname名称 netbios名称仅限于15_netbios_02

发现计算机名被截断成了15个字母:WIN2003R2-32-SQ,更改成这个名字后,sql server management studio能正常连接。

也可以在windows系统中直接查看:

win11 netbiosname名称 netbios名称仅限于15_sql_03


是什么原因导致的呢?网络上查资料,发现是由于 NetBIOS 的限制导致的。


1,Widnows计算机名的最大长度是 63 字节,因此可以设定大于15个字符的计算机名称;,

2,但是在使用计算机名进行网络访问时,使用的是 NetBIOS 名称(路由器一般会将收到的NetBIOS数据丢弃,因此NetBIOS无法跨路由器访问),NetBIOS名字长度在设计时就被限制为16个字符,其中第16个字符用于区分不同的网络服务,因此网络名称实际最长只有15个字符。


微软的建议:


指定计算机名称时请考虑以下事项:

  • 多数语言的推荐长度是等于或小于 15 个字符。对于每个字符要求更多存储空间的语言(如中文、日语和朝鲜语),推荐长度是等于或小于 7 个字符。
  • 我们建议您在计算机名中仅使用 Internet 标准字符。标准字符是从 0 到 9 的数字、从 A 到 Z 的大写和小写字母以及连字符 (-)。计算机名不能全部是数字。
  • 如果在网络上使用了 DNS,则可以使用多种字符。这些字符包括 Unicode 字符和其他非标准字符(如 &)。使用非标准字符可能影响非 Microsoft 软件在您的网络上运行时的性能。
  • 计算机名的最大长度是 63 字节。如果该名称长度大于 15 个字节(在多数语言中为 15 个字符,有一些语言为 7 个字符),则运行 Windows NT 4.0 和更低版本的计算机将通过名称的前 15 个字节来识别该计算机。另外,也有对长度大于 15 个字节的计算机名进行配置的额外步骤。
  • 如果计算机是域的成员,则必须选择不同于域中其他计算机的名称。若要避免名称冲突,计算机在域、工作组或网络中应该唯一。如果该计算机是域的成员,而且它包含多个操作系统,则对于每个安装的操作系统而言,必须使用唯一的计算机名。此要求同样适用于安装了多个相同操作系统的计算机。