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文件进行数据库还原操作!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/884054.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言进阶版第12课—字符函数和字符串函数1

文章目录 1. 字符分类函数1.1 库函数iscntrl1.2 库函数isspace1.3 库函数islower和isupper 2. 字符转换函数3. strlen函数的使用和模拟实现3.1 strlen函数的使用3.2 strlen函数的模拟实现 4. strcpy函数的使用和模拟实现4.1 strcpy函数的使用4.2 strcpy函数的模拟实现 5. strca…

C++读取txt文件中的句子在终端显示,同时操控鼠标滚轮(涉及:多线程,产生随机数,文件操作等)

文章目录 &#x1f315;运行效果&#x1f315;功能描述&#x1f315;代码&#x1f319;mian.cpp&#x1f319;include⭐MouseKeyControl.h⭐TipsManagement.h &#x1f319;src⭐MouseControl.cpp⭐TipsManagement.cpp &#x1f315;运行效果 &#x1f315;功能描述 线程一&am…

web前端-CSS引入方式

一、内部样式表 内部样式表(内嵌样式表)是写到html页面内部,是将所有的 CSS 代码抽取出来,单独放到一个<styie>标签中。 注意: ① <style>标签理论上可以放在 HTML文档的任何地方&#xff0c;但一般会放在文档的<head>标签中 ② 通过此种方式&#xff0c;可…

开发提效的工具tabby快速入门

1.什么是tabby&#xff1f; Tabby is an open-source, self-hosted AI coding assistant. With Tabby, every team can set up its own LLM-powered code completion server with ease. 官方网站&#xff1a;https://tabby.tabbyml.com/ 2.tabby服务安装(Hugging Face Spaces…

虚幻引擎的三种输入模式和将控件显示到屏幕上

首先要知道一个概念 , HUD 和 Input 都是由 PlayerController 来控制的 而虚幻的Input控制模式有三种 Set Input Mode Game Only (设置输入模式仅限游戏): 视角会跟着鼠标旋转 , 就是正常游戏的模式 , 这也是游戏默认输入模式 Set Input Mode UI Only (设置输入模式仅限UI): …

【C++】 vector 迭代器失效问题

【C】 vector 迭代器失效问题 一. 迭代器失效问题分析二. 对于vector可能会导致其迭代器失效的操作有&#xff1a;1. 会引起其底层空间改变的操作&#xff0c;都有可能是迭代器失效2. 指定位置元素的删除操作--erase3. Linux下&#xff0c;g编译器对迭代器失效的检测并不是非常…

通信工程学习:什么是FDD频分双工

FDD:频分双工 FDD(频分双工,Frequency Division Duplexing)是一种无线通信技术,它通过将频谱划分为上行和下行两个不重叠的频段来实现同时双向通信。以下是FDD频分双工的详细解释: 一、定义与原理 定义: FDD是一种无线通信系统的工作模式,其中上行链路(从移动…

每日OJ_牛客_OR59字符串中找出连续最长的数字串_双指针_C++_Java

目录 牛客_OR59字符串中找出连续最长的数字串 题目解析 C代码1 C代码2 C代码3 Java代码 牛客_OR59字符串中找出连续最长的数字串 字符串中找出连续最长的数字串_牛客题霸_牛客网 题目解析 双指针&#xff1a; 遍历整个字符串&#xff0c;遇到数字的时候&#xff0c;用双…

坚果N1 Air高亮版对比当贝D6X高亮版:谁是2000元预算的投影仪王者?

当贝D6X高亮版新品升级&#xff0c;对于那些计划在这个时间点购买投影仪的用户来说&#xff0c;现在是个绝佳的时机&#xff01;特别是那些预算在两千元左右的&#xff0c;目前两千元左右的投影仪&#xff0c;无外乎两款产品&#xff0c;当贝D6X高亮版和坚果N1 Air高亮版&#…

常见区块链数据模型介绍

除了加密技术和共识算法&#xff0c;区块链技术还依赖于一种数据模型&#xff0c;它决定了信息如何被结构化、验证和存储。数据模型定义了账户如何管理&#xff0c;状态转换如何发生&#xff0c;以及用户和开发者如何与系统交互。 在区块链技术的短暂历史中&#xff0c;数据…

13年408计算机考研-计算机网络

第一题&#xff1a; 解析&#xff1a;OSI体系结构 OSI参考模型&#xff0c;由下至上依次是&#xff1a;物理层-数据链路层-网络层-运输层-会话层-表示层-应用层。 A.对话管理显然属于会话层&#xff0c; B.数据格式转换&#xff0c;是表示层要解决的问题&#xff0c;很显然答案…

怎样用云手机进行TikTok矩阵运营?

在运营TikTok矩阵时&#xff0c;许多用户常常面临操作复杂、设备过多等问题。如果你也感到操作繁琐&#xff0c;不妨考虑使用云手机。云手机具备丰富的功能&#xff0c;能够帮助电商卖家快速打造高效的TikTok矩阵。接下来&#xff0c;我们将详细解析这些功能如何提升你的运营效…

智能化转型新篇章:EasyCVR引领大型连锁超市视频监控进入AI时代

随着科技的飞速发展&#xff0c;视频监控系统在各行各业中的应用日益广泛&#xff0c;大型连锁超市作为人员密集、商品繁多的公共场所&#xff0c;其安全监控显得尤为重要。为了提升超市的安全管理水平、减少损失、保障顾客和员工的安全&#xff0c;引入高效、全面的视频监控系…

Meta震撼发布Llama3.2大规模模型

在2024.9.26的年Meta Connect大会上&#xff0c;Meta正式推出了Llama3.2模型&#xff0c;旨在提升边缘AI和视觉任务的能力。Llama3.2系列包括11亿和90亿参数的中型视觉模型&#xff0c;以及为移动设备优化的1亿和3亿参数的小型模型&#xff0c;并针对高通和联发科的硬件平台进行…

Navicat数据库管理工具实现Excel、CSV文件导入到MySQL数据库

1.所需要的工具和环境 navicat等第三方数据库管理工具云服务器中安装了 1Panel面板搭建的mysql数据库 2.基于 1Panel启动mysql容器 2.1 环境要求 安装前请确保您的系统符合安装条件&#xff1a; 操作系统&#xff1a;支持主流 Linux 发行版本&#xff08;基于 Debian / Re…

C#和数据库高级:虚方法

文章目录 一、抽象方法和抽象类中的思考1.1、回顾抽象方法的特点1.2、针对抽象方法问题的引出 二、虚方法的使用步骤2.1、虚方法重写方法的调用2.2、系统自带的虚方法2.3、重写Equals方法2.4、虚方法和抽象方法的比较 三、虚方法和抽象方法的联系3.1、ToString()方法的应用 一、…

ARM点灯---看手册

知识点&#xff1a; 一个程序可能会遇到内存泄漏问题&#xff0c;可能一次运行泄漏几M大小&#xff0c;执行几个小时才会泄漏到站崩溃&#xff0c;所以要查看是否有内存泄漏。 查看手册教程 0927-上午 视频1&#xff1a;25&#xff1b;00 硬件程序开发流程 最小系统:单片…

单词的秘密3:从eight说起

单词的秘密&#xff0c;所谓秘密&#xff0c;就是指只有圈内的人知道&#xff08;而圈子往往代表了狭隘或某种专业性、独特或独占或垄断性&#xff09;&#xff0c;或者只有少数的人知道。 同样&#xff0c;一些单词的秘密&#xff0c;如果我不说&#xff0c;可能这一辈子&…

简单的spring缓存 Cacheable学习

简单的spring缓存 Cacheable学习 1.需求 项目中有很多的方法查询的数据其实是不会经常变的&#xff0c;但是其整体的查询sql以及调用第三方数据获取数据花费的时间很长&#xff0c;现在考虑对此类型的接口进行优化&#xff0c;首先想到的是对其进行缓存操作&#xff0c;所以简…

Docker全家桶:从0到加载本地项目

安装docker&#xff0c;我们选择的是CentenOS 7。 目录 Docker安装 命令 命令别名 数据卷挂载 Dockerfile 容器网络互联 Docker安装 1. 先删除本机旧的或者残留的docker sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest …