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!