我正在尝试将我的数据库导出到.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.)
很难将代码放在注释中,所以我就在这里发布它。此代码是否适用于您的方案?它在我的测试机器(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!