SQL Server на Linux не может экспортировать в 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'

База данных, которую я пытаюсь сделать резервную копию, находится на другом ssd, чем моя установка mssql. Я не знаю, если это имеет значение.

Я гуглял вокруг, как это исправить, и большинство людей, использующих окна, решали похожую проблему, убедившись, что различные службы 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 ответ

Довольно сложно поместить код в комментарий, поэтому я просто опубликую его здесь. Будет ли этот код работать в вашем сценарии? Он отлично работает на моей тестовой машине (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!
Другие вопросы по тегам