1

我正在尝试将我的数据库导出到 .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.)
4

1 回答 1

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!
于 2017-07-03T09:33:55.037 回答