求救解决 sqlcmd:错误:microsoft sql server native client 10.0 : 登陆超时已过期

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求救解决 sqlcmd:错误:microsoft sql server native client 10.0 : 登陆超时已过期相关的知识,希望对你有一定的参考价值。

默认情况下,SQL Server 2008Express Edition 和 SQL Server 2008 Developer Edition 不允许远程连接。若要配置 SQL Server 2008 以允许远程连接,请完成以下所有步骤:
•在您要从远程计算机连接到的 SQL Server 实例上启用远程连接。
•打开 SQL Server Browser 服务。
•配置防火墙以允许与 SQL Server 和 SQL Server Browser 服务相关的网络通讯。
1.单击“开始”,依次指向“程序”、“Microsoft SQL Server 2008”和“配置工具”,然后单击“SQL Server 外围应用配置器”。
2.在“SQL Server 2008外围应用配置器”页上,单击“服务和连接的外围应用配置器”。
3.在“服务和连接的外围应用配置器”页上,展开“数据库引擎”,依次单击“远程连接”和“本地连接和远程连接”,单击适用于您的环境的相应协议,然后单击“应用”。

注意:请在接收到以下消息时单击“确定”:
直到重新启动数据库引擎服务后,对连接设置所做的更改才会生效。
4.在“服务和连接的外围应用配置器”页上,展开“数据库引擎”,依次单击“服务”和“停止”,等待 MSSQLSERVER 服务停止,然后单击“启动”以重新启动 MSSQLSERVER 服务。
启用 SQL Server Browser 服务
如果您是通过使用实例名称来运行 SQL Server 2008 并且在连接字符串中没有使用特定的 TCP/IP 端口号,则必须启用 SQL Server Browser 服务以允许远程连接。例如,使用 \SQLEXPRESS 的默认实例名称安装的 SQL Server 2008 Express。不管您正在运行多少个 SQL Server 2008实例,只需要启用一次 SQL Server Browser 服务。若要启用 SQL Server Browser 服务,请执行以下步骤。

重要说明:这些步骤可能会增加您的安全风险。这些步骤还可能导致您的计算机或网络更易于受到恶意用户或恶意软件(如病毒)的攻击。我们之所以推荐本文介绍的这一过程,是为了使程序能够按照设计意图运行,或者为了实现特定的程序功能。我们建议在进行这些更改之前,充分考虑在您的特定环境中实施这一过程可能带来的风险。如果您选择实施此过程,请采用任何适当的附加步骤以保护您的系统。我们建议只有确实需要这一过程时才使用它。
1.单击“开始”,依次指向“程序”、“Microsoft SQL Server 2008”和“配置工具”,然后单击“SQL Server 外围应用配置器”。
2.在“SQL Server 2005 外围应用配置器”页上,单击“服务和连接的外围应用配置器”。
3.在“服务和连接的外围应用配置器”页上,单击“SQL Server Browser”,在“启动类型”中单击“自动”选项,然后单击“应用”。

注意:在单击“自动”选项后,每次启动 Microsoft Windows 时将自动启动 SQL Server Browser 服务。
4.单击“启动”,然后单击“确定”。
注意:在计算机上运行 SQL Server Browser 服务时,计算机显示其上运行的每个 SQL Server 实例的实例名称和连接信息。如果不启用 SQL Server Browser 服务并且通过分配的 TCP 端口直接连接到 SQL Server 实例,则可以降低此风险。本文不讨论如何通过 TCP 端口直接到 SQL Server 实例。有关 SQL Server Browser 服务和连接到 SQL Server 实例的更多信息,请参见《SQL Server 联机丛书》中的以下主题:
•SQL Server Browser 服务
•连接到 SQL Server 数据库引擎
•客户端网络配置
参考技术A 求救解决 sqlcmd:错误:microsoft sql server native client 10.0 : 登陆超时已过期

配置工具--配置管理器--sqlserver网络配置--mssqlserver的协议--tcp/ip服务是否有启用-把所有IP是否启用 都设为启用 试试

SQLCMD命令,如何将输出保存到日志文件中

以下问题帮助我解决了执行位于文件中的多个SQL脚本的问题。 Run all SQL files in a directory 但是,我没有得到如何将输出重定向到单独的日志文件。有人建议使用以下脚本,但由于我不理解它,它不起作用,我无法找出错误。

for %f in (*.sql) do sqlcmd /S <servername> /d <dbname> /E /i "%f" >> sql.log 2>&1) 
答案

如果您需要输出到一个公共文件,那么您应该使用@Abhishek的答案。

如果您需要输出到每个输入sql文件的单独日志文件中,那么您可以使用-o命令的sqlcmd参数。您的bat文件可能如下所示:

for %%G in (*.sql) do sqlcmd /S <servername> /d <dbname> -E -i"%%G" -o C:logs\%%G.log
pause

在这种情况下

1.SQL

2.SQL

你会得到:

1.sql.log

2.sql.log

另一答案

您正在寻求命令重定向。

根据你的例子 -

for %f in (*.sql) do sqlcmd /S <servername> /d <dbname> /E /i "%f" >> sql.log 2>&1

一旦完成sql脚本的执行,输出将被重定向到并将命令输出附加到文件末尾(此处为sql.log),而不删除文件中已有的信息(>>)并重定向STDERR(2) )进入STDOUT手柄(1) - 2>&1

更多信息herehere

以上是关于求救解决 sqlcmd:错误:microsoft sql server native client 10.0 : 登陆超时已过期的主要内容,如果未能解决你的问题,请参考以下文章

求大神解决sqlcmd执行sql文件忽略错误的问题

sqlcmd

有关runtime error的错误怎么解决啊!!!!求救

win8安装SQL2008后,无法还原数据库,求救~~

求救!!..Winform 对 Excel的操作问题 ..!!!!!急急急!!!!

SQLCMD 脚本错误