sqlcmd未连接到Azure数据库

时间:2017-11-20 19:37:04

标签: azure azure-sql-database sqlcmd

我正在尝试使用以下命令访问Azure中的数据库

sqlcmd -s tcp:DBNAME HERE.database.windows.net -U USERNAME -P PASSWORD

我收到错误

  

Sqlcmd:错误:用于SQL Server的Microsoft ODBC驱动程序13:命名管道   提供者:无法打开与SQL Server的连接[2]。 。 SQLCMD:   错误:SQL Server的Microsoft ODBC驱动程序13:登录超时   过期。 Sqlcmd:错误:SQL Server的Microsoft ODBC驱动程序13:A   发生了与网络相关或特定于实例的错误   建立与SQL Server的连接。找不到服务器   无障碍。检查实例名称是否正确以及SQL Server是否正确   配置为允许远程连接。有关更多信息,请参阅SQL   Server Books Online ..

有没有人有这个?我已经下载了最新版本的sqlcmd

我需要在Azure数据库中获取大量数据,但由于管理工作室中的“导入数据”选项无法应对,因此我的选项用完了。这是我尝试的第一种方法。在处理了50000行的50000行之后,它就会停止而没有错误消息,那就是那些让我尝试使用BCP SQLCMD

3 个答案:

答案 0 :(得分:1)

您的命令不正确。 'S'应该大写,你应该提供服务器名称,而不是数据库名称。

sqlcmd -S tcp:myServer.database.windows.net -d database -U username -P password

有关sqlcmd的完整语法,请参阅documentation page

答案 1 :(得分:0)

请对Azure SQL数据库服务器的名称进行ping操作,如下所示:

C:\> ping myserver.database.windows.net

ping命令应该失败但它应该返回SQL Azure数据库服务器的当前IP。如果它无法返回该IP,则由于DNS解析问题,您无法访问Azure服务器。

如果ping命令返回IP地址成功,则尝试telnet SQL Azure数据库服务器,如下所示。

C:\> telnet myserver.database.windows.net 1433

如果telnet命令失败,请确保您的计算机防火墙或网络硬件允许流量到上一步返回的IP,并确保TCP端口1433已打开。如果您是从公司网络尝试此操作,请与您的网络管理员联系以满足此要求。

请注意,您可能需要通过控制面板启用telnet命令 - >程序和功能 - >打开/关闭功能。

答案 2 :(得分:0)

我只想指出BCP和sqlcmd是两种不同的工具。

BCP是批量复制命令。后者是用于查询的命令行工具。

如果您收到命名管道问题,则可能没有配置客户端和/或服务器库。

请转到SQL Server配置管理器检查设置。

默认情况下,Azure SQL数据库使用TCP,您无需在命令行上告诉它。

enter image description here

在上图中,我使用在线图书中的正确切换连接到Azure SQL数据库。查询sys.tables目录会返回我期望的信息。两个表名不同。一个在不同模式下重复命名的表。

BCP命令将以相同的方式工作。您甚至可能想要尝试格式文件。

我想澄清你的说法,即进口需要很长时间。请记住,Azure SQL数据库是平台即服务。数据库层设置在预定的DTU。这意味着在服务器中填充大量数据将导致MAX DTU的服务器受到限制。

我会查看门户网站,看看这是不是你的情况。

简而言之,sqlcmd,bcp和导入/导出向导是数据加载的完美工具,比您所谈论的数字要大得多。请记住,语法是任何成功程序的关键!