Linux上的SQL Server无法导出到bacpac

时间:2017-07-01 18:20:31

标签: sql-server linux sqlpackage bacpac

我试图将我的数据库导出到.bacpac文件。我收到以下错误:

(provider: Named Pipes Provider, error: 40 - Could not open a connection to 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'

错误略有不同:

(provider: TCP Provider, error: 0 - No such host is known.)

1 个答案:

答案 0 :(得分:0)

将代码置于评论中非常困难,所以我只是在这里发布。此代码是否适用于您的方案?它在我的测试机器上工作正常(ubuntu 16.04):

hostname=$(hostname)
/opt/mssql/bin/sqlpackage /action:Export /SourceServerName:tcp:$hostname /SourceDatabaseName:MYDB /targetfile:'/media/jake/1F171B4C75D06418/MyDB.bacpac' /su:sa /sp:Password01!