我正在尝试使用以下命令访问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
保
答案 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,您无需在命令行上告诉它。
在上图中,我使用在线图书中的正确切换连接到Azure SQL数据库。查询sys.tables目录会返回我期望的信息。两个表名不同。一个在不同模式下重复命名的表。
BCP命令将以相同的方式工作。您甚至可能想要尝试格式文件。
我想澄清你的说法,即进口需要很长时间。请记住,Azure SQL数据库是平台即服务。数据库层设置在预定的DTU。这意味着在服务器中填充大量数据将导致MAX DTU的服务器受到限制。
我会查看门户网站,看看这是不是你的情况。
简而言之,sqlcmd,bcp和导入/导出向导是数据加载的完美工具,比您所谈论的数字要大得多。请记住,语法是任何成功程序的关键!