Я запускаю SQL Server 2017 в контейнере Docker и не могу присоединить к нему базу данных.
Сначала я скопировал .MDF, .NDF, .LDF
файлы в контейнер, в котором работает
docker cp /local/folder/of/my/files/db.mdf my-container:db.mdf
(то же самое для 3 файлов), поэтому все 3 файла находятся в корне моего контейнера.
После этого я дал полное разрешение своим файлам (chmod 777
).
Я подключился к контейнеру (docker exec -it my-container "bash"
) и запустил ls
, чтобы проверить, действительно ли 3 файлатам я запускаю sqlcmd
и подключаюсь к базе данных.
Я запускаю:
CREATE DATABASE PEDIDOS ON
( FILENAME = N'DB.MDF' ),
( FILENAME = N'DB_INDEX.NDF' ),
( FILENAME = N'DB_LOG.NDF' )
FOR ATTACH;
GO
И получаю это сообщение об ошибке:
Msg 5105,Уровень 16, состояние 2, строка 1
Произошла ошибка активации файла.Физическое имя файла «DB.MDF» может быть неправильным.Диагностируйте и исправьте дополнительные ошибки и попробуйте снова выполнить операцию.
Я пробовал много альтернативных форм, например, без N, с / перед именем файла (например, (FILENAME = N'/DB.MDF')
), без .NDF
файл и ничего не работает.
Эти файлы были сгенерированы SQL Server 2016, это ошибка совместимости?Мол, я прочитал столько вопросов с этой же ошибкой, и все, что ответ был ошибкой прав доступа к файлу .mdf
(но я действительно не знаю, как дать это разрешение).