Sql server linux上的SQL Server无法导出到bacpac

Sql server linux上的SQL Server无法导出到bacpac,sql-server,linux,sqlpackage,bacpac,Sql Server,Linux,Sqlpackage,Bacpac,我正在尝试将数据库导出到.bacpac文件。我得到以下错误: (提供程序:命名管道提供程序,错误:40-无法打开到SQL Server的连接) 我使用的命令是: /opt/mssql/bin/sqlpackage/action:Export/SourceServerName:localhost/SourceDatabaseName:MyDB/targetfile:“/media/jake/1F171B4C75D06418/MyDB.bacpac” 我尝试备份的数据库位于与mssql安装不同的

我正在尝试将数据库导出到.bacpac文件。我得到以下错误:

(提供程序:命名管道提供程序,错误:40-无法打开到SQL Server的连接)
我使用的命令是:

/opt/mssql/bin/sqlpackage/action:Export/SourceServerName:localhost/SourceDatabaseName:MyDB/targetfile:“/media/jake/1F171B4C75D06418/MyDB.bacpac”
我尝试备份的数据库位于与mssql安装不同的ssd上。我不知道这是否有区别

我一直在谷歌上搜索如何解决这个问题,大多数使用windows的人都通过确保各种windows服务都在运行并在不运行时启动它们来解决了类似的问题。但我不知道如何在linux中检查相同的东西,但我认为我需要的所有服务目前都在运行,因为我可以通过
sqlcmd
以及JetBrains的DataGrip应用程序连接到数据库。所以我知道这是可能的。我只是不知道为什么
sqlpackage
无法连接

更新 按照建议,我对以下命令进行了尝试:

/opt/mssql/bin/sqlpackage/action:Export/SourceServerName:tcp:localhost,1433/SourceDatabaseName:MyDB/targetfile:“/media/jake/1F171B4C75D06418/MyDB.bacpac”
误差略有不同:

(提供程序:TCP提供程序,错误:0-不知道这样的主机。)

很难在注释中添加代码,所以我将在这里发布。这段代码在您的场景中有效吗?它在我的测试机器(ubuntu 16.04)上运行良好:


很难在注释中添加代码,所以我将在这里发布。这段代码在您的场景中有效吗?它在我的测试机器(ubuntu 16.04)上运行良好:



我尝试了你的建议,但得到了一个不同的错误,它甚至找不到服务器。我调用命令正确吗?这是否表明tcp未启用?不幸的是,我在这两个备选方案中都遇到了相同的错误。为了澄清这一点,您建议该命令应类似于
/SourceServerName:“tcp:localhost,1433”…
/SourceServerName:“tcp:localhost”…
,对吗?因此,linux上sql server的文档以及sqlpackage和mssql conf文档似乎假定默认情况下启用了tcp。您可以使用mssql conf更改端口,但似乎没有关于启用/禁用的任何内容。还有其他想法吗?Stack Overflow是一个关于编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。@JakeSmith-微软可以陈述他们喜欢的任何东西,但这并没有改变Stack Overflow是一个用于编程和开发问题的网站这一事实。你应该在更合适的网站上提出你的离题问题。这不是第一次一家公司告诉它的用户在其他地方获得支持。我试过你的建议,但发现了一个不同的错误,它甚至找不到服务器。我调用命令正确吗?这是否表明tcp未启用?不幸的是,我在这两个备选方案中都遇到了相同的错误。为了澄清这一点,您建议该命令应类似于
/SourceServerName:“tcp:localhost,1433”…
/SourceServerName:“tcp:localhost”…
,对吗?因此,linux上sql server的文档以及sqlpackage和mssql conf文档似乎假定默认情况下启用了tcp。您可以使用mssql conf更改端口,但似乎没有关于启用/禁用的任何内容。还有其他想法吗?Stack Overflow是一个关于编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。@JakeSmith-微软可以陈述他们喜欢的任何东西,但这并没有改变Stack Overflow是一个用于编程和开发问题的网站这一事实。你应该在更合适的网站上提出你的离题问题。这不是第一次一家公司告诉它的用户在其他地方获得支持。另请参阅等。谢谢您的建议。这最终不起作用。我认为它正在解析为我一直在尝试的同一个服务器名,那么您的发行版是什么?是ubuntu还是别的什么?不确定它是否支持17.04,但应该可以。当你执行这个命令时,你可以发布以“连接到数据库……”开头的消息吗?这和我在问题中遇到的错误是一样的。我想我只需要在windows上做这件事……这可能是我搞砸了的事情。谢谢你的建议。这最终不起作用。我认为它正在解析为我一直在尝试的同一个服务器名,那么您的发行版是什么?是ubuntu还是别的什么?不确定它是否支持17.04,但应该可以。当你执行这个命令时,你可以发布以“连接到数据库……”开头的消息吗?这和我在问题中遇到的错误是一样的。我想我只需要在windows中执行此操作…这可能是我搞砸的事情
hostname=$(hostname)
/opt/mssql/bin/sqlpackage /action:Export /SourceServerName:tcp:$hostname /SourceDatabaseName:MYDB /targetfile:'/media/jake/1F171B4C75D06418/MyDB.bacpac' /su:sa /sp:Password01!