欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > Mac系统Docker中SQLserver数据库文件恢复记录

Mac系统Docker中SQLserver数据库文件恢复记录

2025/2/24 4:04:40 来源:https://blog.csdn.net/LiuCJ_20000/article/details/142444812  浏览:    关键词:Mac系统Docker中SQLserver数据库文件恢复记录

Mac系统Docker中SQLserver数据库文件恢复记录

Mac想要安装SQLsever,通过docker去拉去镜像是最简单方法。

一、下载Docker

  • Docker 下载安装:

需要‘科学上网’ 才能访问到docker官网。( https://docs.docker.com/desktop/install/mac-install/)。
这里需要安装包的留言我将网盘中的docker安装包分享出来!

根据电脑搭载的芯片架构,选择苹果芯片<font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">Apple Silicon</font>或因特尔芯片<font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">Intel chip</font>的安装包下载。

安装过程省略…

  • 配置Docker镜像加速

国内镜像地址:

阿里云 Docker 镜像加速,需在阿里云官方网站注册账号后获取。

腾讯云 Docker 镜像加速

华为云 Docker 镜像加速

清华大学 TUNA 协会 镜像源地址:https://docker.mirrors.tuna.tsinghua.edu.cn

中国科学技术大学 镜像源地址:https://docker.mirrors.ustc.edu.cn

北京理工大学 镜像源地址:https://dockerhub.azk8s.cn

浙江大学 镜像源地址:https://mirrors.zju.edu.cn/dockerhub/

修改 Docker 配置文件:
修改配置文件:

{"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"experimental": false,"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn","https://registry.docker-cn.com","http://hub-mirror.c.163.com"]
}

  • Docker容器设置:

根据实际需求情况,设置Docker容器的相关配置信息!

  • 验证 Docker :

打开命令行窗口,运行命令docker --version

二、拉取SQLserver镜像

在ARM框架的m1,m2中,在使用镜像拉取SQLsever的时候,以前的 **mcr.microsoft.com/mssql/server:2019-latest **是行不通的,只会拉取到AMD64版本,指定arm64版本拉下来的也还是AMD64。

所以我们改用** mcr.microsoft.com/azure-sql-edge:latest **镜像。

docker pull **mcr.microsoft.com/azure-sql-edge:latest**

拉取下来后的镜像 可以在 images 中查看:

三、生成容器

docker run 命令运行sqlserver镜像,生成容器!

docker run -e "ACCEPT_EULA=1" -e "MSSQL_SA_PASSWORD=**Sxf123456@**" -e "MSSQL_PID=Developer" -e "MSSQL_USER=SA" -p 1433:1433 -d --name=sql mcr.microsoft.com/azure-sql-edge

上面黑体加粗的密码部分换成你自己的:

  • 需要注意密码设置是有规则的

  • 检查Docker进程

在命令行中,使用 docker ps 查看当前 Docker 中运行的进程:

四、Docker中导入数据库文件

4.1 启动交互式 Bash Shell

docker容器运行之后,在命令行界面使用下面命令在容器内部启动交互式 Bash Shell:

docker exec -it [你的容器名称] "bash"

**注意1: **这里也可以不用在命令行窗口进行,可以直接在Docker应用中进行交互:

**注意2: **查看容器是否已经创建数据卷 ,通过docker volume ls命令查看:

docker 中查看 数据卷:

如果没有创建数据卷,则需要创建好数据卷, 使用命令:docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>' -p 1433:1433 -v sqlvolume:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest

下面的操作,我以交互式 Bash Shell 进行操作!

4.2 向Docker中导入数据文件

在带有数据卷的容器中创建个文件夹把我们的** .MDF和.LDF文件** 复制过去
  1. 中Docker中创建一个文件夹,存放数据库数据文件:

进入Docker容器中后(命令行界面启动交互式Bash Shell),通过命令 mkdir /xx/xx 来创建文件夹:

如过我们没有使用 交互式 Bash Shell 时,在命令行界面 可以使用以下命令实现在Docker中创建文件夹:docker exec -it [sql你的容器名称] mkdir /var/opt/mssql/data

  1. 将.MDF和.LDF文件 复制到Docker中创建好的文件夹中

使用如下命令,将需要复制的文件复制到Docker容器中的对应文件夹中:

docker cp /Users/chiyu/Desktop/xx.LDF [sql(你的容器名称)]:/var/opt/mssql/mtxyBackups/xx.LDF
docker cp /Users/chiyu/Desktop/xx.MDF [sql(你的容器名称)]:/var/opt/mssql/mtxyBackups/xx.MDF

**注意:**需要注意被复制文件的文件权限需要调整!

可以在复制进入docker 之前先将文件的权限进行调整后,在进行复制:**
**(显示简介–> 共享权限 --> everyone 读与写)


也可以将文件复制进入Docker之后,在使用命令将数据文件的权限进行修改:

chmod 666 xx.LDF
chown -R root:root xx.LDF

五、使用Navicat Premium导入文件数据

  1. 通过Navicat Premium 连接Sqlserver,然后创建数据库

(自行下载安装Navicat )

Navicat 连接sqlserver创建数据库时,需要注意排序规则设置为:Chinese_PRC_90_CI_AS**** 。 否则会出现插入中文字符时会出现问号或者乱码的情况!

  1. 双击数据库打开(变绿色),然后点击左上方的新建查询,输入下面代码(dbname无所谓):

Navicat中执行下面命令:

EXEC sp_attach_db @dbname = 'database_name',
@filename1 = '/home/Xk_Log.LDF',
@filename2 = '/home/Xk.MDF'

我这里是 采用另一种方式: 导入数据库的 .bat 文件到Docker中,在通过 Microsoft SQL Server Tools 连接Docker中的 SQLserver ,然后通过.bat文件进行数据库还原操作!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词