积极答复者
sqlcmd 的问题

问题
-
安装了 了 sql2005
net start mssql$mydbserver
通过 SQL Server Management Studio 能 正常连接至该 服务器
但是 在命令行 输入 cmdsql 的时候 出现以下错误:
"
HResult 0x2,级别 16,状态 1
命名管道提供程序: 无法打开与 SQL Server 的连接 [2].
Sqlcmd: 错误: Microsoft SQL Native Client : 建立到服务器的连接时发生错误。连接到
SQL Server 2005 时,默认设置 SQL Server 不允许远程连接这个事实可能会导致失败。
。
Sqlcmd: 错误: Microsoft SQL Native Client : 登录超时已过期。
"
请问如何解决才能使用 sqlcmd 控制台登录sql服务器?
答案
-
你的数据库是命名实例,连接是需要指定实例名称
sqlcmd -S serversName\instanceName
假设你是在本机进行链接
sqlcmd -S .\mydbserver
有dba的职位吗(北京的),请联系我 stswordman#hotmail.com- 已编辑 LiweiyinMicrosoft employee, Moderator 2009年12月1日 3:09 typo
- 已标记为答案 Hong-Gang Chen - MSFTModerator 2009年12月3日 5:09
-
如果不是上述原因输入连接实例名字造成, 有下述办法可以帮你找到原因:
如果SSMS能连上,你可以察看从SSMS登陆的client是用什么协议登陆的,这个可以通过sysprocesses知道。注意到你的sqlcmd是在说它在用命名管道没成功。你可以创建一个alias,指定用SSMSs成功连接的协议,然后sqlcmd去连接这个alias,应该成功。
Oliver Yao - MSFT- 已标记为答案 Hong-Gang Chen - MSFTModerator 2009年12月3日 5:09
-
可以打开ERRORLOG文件了解连接失败的具体原因,通常位于安装实例的Log目录下
C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\LogSQL Server每一次重启都会生成一个新的文件,同时把老的文件编号往后移,你可以根据时间戳查找对应的文件。如文件中没有记载你的连接错误,要看看防火墙是不是有问题,因为很可能连接消息包都没有到达SQL Server
- 已标记为答案 Hong-Gang Chen - MSFTModerator 2009年12月3日 5:09
-
查看一下以下設置是否正確?樓主是用SA連接還是信倕連接
-------------------------------------------------
Windows防火牆把1433設置為例外,或關掉Windows防火牆。
程序—Microsoft SQL Server 2005—配置工具—SQL Server 外围应用配置器—服务和连接的外围应用配置器—
1、MSSQLserver(实例名)—DataBase Engine—远程连接—(设置选项)
在下方选项
2、SQL Server Browser—服务(停止时只本机访问)
3、程序—Microsoft SQL Server 2005—配置工具—SQL Server Configuration Manager—網絡連接協議—選擇實例對應協議—啟用(shard memory、Named Pipes、TCP\IP)
注:
SQL Server 浏览器程序以服务的形式在服务器上运行。SQL Server 浏览器侦听对 Microsoft SQL Server 资源的传入请求,并提供计算机上安装的 SQL Server 实例的相关信息。SQL Server 浏览器可用于执行下列三种操作:
浏览可用服务器
连接到正确的服务器实例
连接到专用管理员连接 (DAC) 端点
SQL Server Browser 服务 (sqlbrowser) 为数据库引擎 和 SSAS 的每个实例提供实例名称和版本号。SQL Server 浏览器随 Microsoft SQL Server 2005 一起安装,为该计算机上运行的早期版本的 SQL Server(从 Microsoft SQL Server 7.0 开始)提供此服务
--改登陸模式
用windows驗證,登入企業管理器—在實例—屬性—安全性(混合登陸模式)
在安全性—登入—sa—屬性—狀態—啟用
ROY WU(吳熹)- 已标记为答案 Hong-Gang Chen - MSFTModerator 2009年12月3日 5:09
-
希望以下Link对你有帮助:
http://support.microsoft.com/default.aspx/kb/929152
Qiong Wu - MSFT- 已标记为答案 Hong-Gang Chen - MSFTModerator 2009年12月3日 5:09
全部回复
-
你的数据库是命名实例,连接是需要指定实例名称
sqlcmd -S serversName\instanceName
假设你是在本机进行链接
sqlcmd -S .\mydbserver
有dba的职位吗(北京的),请联系我 stswordman#hotmail.com- 已编辑 LiweiyinMicrosoft employee, Moderator 2009年12月1日 3:09 typo
- 已标记为答案 Hong-Gang Chen - MSFTModerator 2009年12月3日 5:09
-
如果不是上述原因输入连接实例名字造成, 有下述办法可以帮你找到原因:
如果SSMS能连上,你可以察看从SSMS登陆的client是用什么协议登陆的,这个可以通过sysprocesses知道。注意到你的sqlcmd是在说它在用命名管道没成功。你可以创建一个alias,指定用SSMSs成功连接的协议,然后sqlcmd去连接这个alias,应该成功。
Oliver Yao - MSFT- 已标记为答案 Hong-Gang Chen - MSFTModerator 2009年12月3日 5:09
-
可以打开ERRORLOG文件了解连接失败的具体原因,通常位于安装实例的Log目录下
C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\LogSQL Server每一次重启都会生成一个新的文件,同时把老的文件编号往后移,你可以根据时间戳查找对应的文件。如文件中没有记载你的连接错误,要看看防火墙是不是有问题,因为很可能连接消息包都没有到达SQL Server
- 已标记为答案 Hong-Gang Chen - MSFTModerator 2009年12月3日 5:09
-
查看一下以下設置是否正確?樓主是用SA連接還是信倕連接
-------------------------------------------------
Windows防火牆把1433設置為例外,或關掉Windows防火牆。
程序—Microsoft SQL Server 2005—配置工具—SQL Server 外围应用配置器—服务和连接的外围应用配置器—
1、MSSQLserver(实例名)—DataBase Engine—远程连接—(设置选项)
在下方选项
2、SQL Server Browser—服务(停止时只本机访问)
3、程序—Microsoft SQL Server 2005—配置工具—SQL Server Configuration Manager—網絡連接協議—選擇實例對應協議—啟用(shard memory、Named Pipes、TCP\IP)
注:
SQL Server 浏览器程序以服务的形式在服务器上运行。SQL Server 浏览器侦听对 Microsoft SQL Server 资源的传入请求,并提供计算机上安装的 SQL Server 实例的相关信息。SQL Server 浏览器可用于执行下列三种操作:
浏览可用服务器
连接到正确的服务器实例
连接到专用管理员连接 (DAC) 端点
SQL Server Browser 服务 (sqlbrowser) 为数据库引擎 和 SSAS 的每个实例提供实例名称和版本号。SQL Server 浏览器随 Microsoft SQL Server 2005 一起安装,为该计算机上运行的早期版本的 SQL Server(从 Microsoft SQL Server 7.0 开始)提供此服务
--改登陸模式
用windows驗證,登入企業管理器—在實例—屬性—安全性(混合登陸模式)
在安全性—登入—sa—屬性—狀態—啟用
ROY WU(吳熹)- 已标记为答案 Hong-Gang Chen - MSFTModerator 2009年12月3日 5:09
-
希望以下Link对你有帮助:
http://support.microsoft.com/default.aspx/kb/929152
Qiong Wu - MSFT- 已标记为答案 Hong-Gang Chen - MSFTModerator 2009年12月3日 5:09