最近因为工作需要,安装了一个Microsoft SQL Server 2017的开发者版,发现通过SQL Server Management Studio用IP地址进行远程连接的时候,老是报用户名和密码错误。因为这个错误的错误提示,害我折腾了半天的用户名密码,几番折腾下来,发现根本不是用户名密码的问题。
真正的原因是用开发者版本用户协议安装的Microsoft SQL Server默认是不允许TCP/IP协议连接的。
接下来是解决方案(以Microsoft SQL Server 2017为例):
-
打开开始菜单依次找到菜单项“Microsoft SQL Server 2017”和“SQL Server 2017 Configuration Manager(SQL Server 2017配置管理器)”打开后者;
在开始菜单中打开SQL Server 2017 Configuration Manager -
如果弹出如下图的UAC对话框,点“是”
允许管理控制台 -
因为我安装的是64bit版本,所以下面提到的节点都是不带“(32bit)”字样的节点,如果安装的是32位的版本,记得在对应的带32bit字样的节点中找相应的内容。依次展开如下图中左边的“SQL Server Network Configuration (SQL Server 网络配置)”和“Protocals for MSSQLSERVER(MSSQLSERVER的协议)”,可以看到右边的TCP/IP的状态是Disabled(关闭)。
果不其然没有开启这个功能 -
在右边的TCP/IP字样上右击点“Enable(开启)”如下图:
右键开启 -
系统提示如下,云:所有更改都已经保存了;然而,只有重启了服务这些更改才会生效。
提示需要重启服务才能使更改生效 -
按照一贯经验,防火墙估计还有一道坎,顺便看一下协议的端口。依次展开左侧节点“SQL Native Client 11.0 Configuration (SQL原生客户端11.0配置)”和“Client Protocols(客户端协议)”:
看看协议端口 -
在右边的TCP/IP项目上右击,点Properties属性,显示对话框如下图:
TCP/IP的端口为1433
记录下这个端口号。
-
现在用Microsoft SQL Server Management Studio通过TCP/IP连接SQL Server果然还是不行,在SQL Server所在服务器上的控制面板中打开高级安全Windows防火墙,如下图:
打开Windows防火墙设置界面 -
在左边“入站规则”节点上点右键选“新建规则”,然后点选“端口”如图然后点下一步:
image.png -
设置如图所示后点下一步然后选“允许连接”后再点下一步:
指定TCP端口1433
允许连接 -
在下面的应用配置文件中,如果没有特殊的情况,全选上吧:
没有特殊情况的话,全选上 -
给这个规则命个名吧:
规则命名 - 我实在不想去截图写这一条了,直接把SQL Server的服务器重启吧。不想重启服务器就重启SQL Server (MSSQLSERVER)服务即可,管理员权限运行命令提示符运行以下两行命令即可。
net stop MSSQLSERVER
net start MSSQLSERVER
以上操作全做完,基本上就好了,如果还有问题可能就不是这个方面的原因了。
达叔傻乐(darwin.zuo@163.com)
网友评论