其他人也提出了这个问题,但是我没有找到专门解决我所遇到的问题或解决该问题的答案。因此,我要发布问题和答案。
几天前,我有几个自动化脚本,它们连接到SQL Server并导出一些数据,突然停止工作。他们已经运行了7年了,所以这很奇怪。这两个脚本使用不同的方法进行连接。一个使用Perl库,另一个使用bcp
命令。但是两者都得到了相同的错误。bcp
为了简洁起见,我只显示命令。这一切都在Windows Server 2008和SQL Server 2008 R2 v10.50上运行。这是我正在运行的:
"C:\Program Files\Microsoft SQL Server\100\Tools\Binn\bcp.exe" "<my query>" queryout "<output file name>" -T -S MYSERVER -c -k
这是我得到的错误:
SQLState = 08001,NativeError = 10061
错误= [Microsoft] [SQL Server Native Client 10.0] TCP Provider:无法建立连接,因为目标计算机主动拒绝了它。SQLState = 08001,NativeError = 10061
错误= [Microsoft] [SQL Server Native Client 10.0]建立与SQL Server的连接时,发生了与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。检查实例名称是否正确,以及是否将SQL Server配置为允许远程连接。有关更多信息,请参见SQL Server联机丛书。SQLState = S1T00,NativeError = 0
错误= [Microsoft] [SQL Server Native Client 10.0]登录超时已过期
解决方案非常简单。我只是将端口号添加到服务器名称(更改MYSERVER
为MYSERVER,1433
)。所以我的最终bcp
命令如下所示:
"C:\Program Files\Microsoft SQL Server\100\Tools\Binn\bcp.exe" "<my query>" queryout "<output file name>" -T -S MYSERVER,1433 -c -k
我不确定要更改的内容包括端口。但是,仅此而已。
这是默认端口有点奇怪。您会认为bcp
无需显式设置即可使用它。但是,这可能只是一些奇怪的服务器配置,突然需要该端口。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句