gpt4 book ai didi

sql-server - 在容器中附加 SQL 数据库不起作用

转载 作者:行者123 更新时间:2023-12-02 18:28:35 24 4
gpt4 key购买 nike

我无法将 SQL 数据库实例附加到 Docker 容器。

这是我的 Dockerfile。

FROM microsoft/mssql-server-windows-express
EXPOSE 1433

WORKDIR C:\\tmp

COPY MyDBNAME.mdf ./
COPY MyDBNAME_log.ldf ./

WORKDIR /

我用它来构建图像: docker build . --tag=mynewsql .

此时, mdfldf文件位于 C:\\Init我的 SQL 镜像中的位置。

这是我的 docker-compose文件,我尝试在其中使用我创建的图像创建一个容器,并通过它映射适当的端口和环境变量。我还确保附上我需要的数据库文件。
version: '3.4'

services:
sqlserver:
image: mynewsql:latest
ports:
- "14333:1433"
environment:
- sa_password=greatpassword
- ACCEPT_EULA=Y
- attach_dbs=[{"dbName":"MyDBNAME","dbFiles":["c:\\tmp\\MyDBNAME.mdf","c:\\tmp\\MyDBNAME_log.ldf"]}]

运行 docker-compose文件并尝试连接到我的数据库工作。

但主要问题是: MyDBNAME数据库未出现在 SQL Server Management Studio 中。

需要注意的一件事:我可以使用不同的 mdf 成功地做到这一点。和 ldf之前版本的项目中的文件,但不确定如何或是否需要获取 mdfldf文件进入某种“状态”,以使其在容器中正常运行。

任何帮助将不胜感激。

最佳答案

为了将来引用,我想出了自己的问题。问题是我必须更改我想要附加的数据库的包含类型。

我打开 Microsoft SQL Management Studio,右键单击其 mdf 的数据库。和 ldf文件,我想要并选择 Properties .然后,我选择 Options页面左侧和 ContainmentType ,我选择None而不是 Partial .点击后OK ,我复制了新修改的mdfldf文件,通过 attach_dbs 附加这些文件属性和瞧!数据库连接成功并出现在我的 Docker SQL 实例中。

关于sql-server - 在容器中附加 SQL 数据库不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54894603/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com