Mac OS X ,想安装微软的mssql-server数据库有三种方式:

  • 第一种是在本机上安装MSSQL for Linux 版本。
  • 第二种是安装Windows虚拟机,然后在虚拟机里面使用ISO文件进行安装。
  • 第三种也就是我要讲的方式,就是使用Docker进行安装。

第一种方式和第二种方式缺点就是要自己找安装包,第三种方式直接通过Docker的命令docker search mssql就能搜索出来,然后拉取创建容器即可。

微软也提供了相应的帮助文档

镜像是微软官方的,但docker hub 奇怪的是并没有把其标示为OFFICIAL。

1.下载镜像

docker pull microsoft/mssql-server-linux

使用该命令就可以把数据库的docker镜像下载下来。

2.创建并运行容器

docker run --name MSSQL_1433 -m 512m -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 -d microsoft/mssql-server-linux

这个密码需要复杂密码,要有大小写和特殊符号,替换yourStrong(!)Password成你自己的密码就行。如果只Linux服务器,可以不用端口映射,直接使用宿主模式

docker run --name MSSQL_1433 -m 512m -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=yourStrong(!)Password' --net=host -d microsoft/mssql-server-linux

3.登入容器

docker exec -it '容器里数据库名' /bin/bash

4.连接到sqlcmd

/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'yourStrong(!)Password'

5.执行SQL语句创建数据库

CREATE DATABASE testDB

go

如果只想创建数据库,已经可以完成了,用Navicat Premium就可以连接到数据库了。

6.还原数据库

在容器内先创建一个文件夹

mkdir /var/opt/mssql/backup

在宿主把.bak备份文件复制到容器

sudo docker cp /Users/front/Downloads/beifen.bak MSSQL_1433:/var/opt/mssql/backup

运行sqlcmd到逻辑文件名称和备份内的路径的列表容器内

sudo docker exec -it MSSQL_1433 /opt/mssql-tools/bin/sqlcmd -S localhost  -U SA -P 'yourStrong(!)Password'  -Q 'RESTORE FILELISTONLY FROM DISK =  "/var/opt/mssql/backup/beifen.bak"'  | tr -s ' ' | cut -d ' ' -f 1-2

运行结果

LogicalName PhysicalName

----------------------------------

beifen D:\Program

beifen_log D:\Program

还原数据库

sudo docker exec -it MSSQL_1433 /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'yourStrong(!)Password' -Q 'RESTOREDATABASE 数据库名 FROM DISK = "/var/opt/mssql/backup/beifen.bak" WITH MOVE "beifen" TO"/var/opt/mssql/data/beifen.mdf", MOVE "beifen_Log" TO "/var/opt/mssql/data/beifen.ldf"'

Done

Docker上安装MSSQL(SQL Server)的更多相关文章

  1. Docker学习笔记之--安装mssql(Sql Server)并使用Navicat连接测试(环境:centos7)

    前一节演示如何使用Nginx反向代理 .net Core项目容器,地址:Docker学习笔记之-部署.Net Core 3.1项目到Docker容器,并使用Nginx反向代理(CentOS7)(二) ...

  2. 在Win8.1系统下如何安装运行SQL Server 2005 (以及安装SQL Server 2005 Express打补丁)

    在Win8.1系统下SQL Server 2005 安装失败怎么办? 需要替换两个文件及打sqlserver sp4补丁. 以下是操作过程. 按正常情况,在Win8/Win8.1系统下安装微软的SQL ...

  3. Configure Red Hat Enterprise Linux shared disk cluster for SQL Server——RHEL上的“类”SQL Server Cluster功能

    下面一步一步介绍一下如何在Red Hat Enterprise Linux系统上为SQL Server配置共享磁盘集群(Shared Disk Cluster)及其相关使用(仅供测试学习之用,基础篇) ...

  4. php连接微软MSSQL(sql server)完全攻略

    http://www.jb51.net/article/98364.htm php连接微软MSSQL(sql server)完全攻略 作者:吵吵 字体:[增加 减小] 类型:转载 时间:2016-11 ...

  5. 在Win8.1系统下如何安装运行SQL Server 2005

    按正常情况,在Win8/Win8.1系统下安装微软的SQL Server 2005套件会存在兼容问题,即使安装完,最后的结果就是导致其服务项无法正常启动. 如果用户创建使用的项目非要按照SQL Ser ...

  6. 安装了SQL2005再安装SQL 2008R2,提示此计算机上安装了 Microsoft Visual Studio 2008 的早期版本和检查是否安装了 SQL Server 2005 Express 工具的解决方案

    工作电脑上安装了SQL 2005, 但是客户电脑上安装的是SQL 2008R2,有时候连接他们的库调试没法连接,很不方便.然后又安装了个SQL2008 R2,期间遇到这两个问题,网上搜索了一下收到了解 ...

  7. 在同一台机器上让Microsoft SQL Server 2000/ SQL2005/ SQL2008共存

    可能很多朋友都遇到想同时在自己的机器上运行Microsoft SQL Server 2000以及Microsoft SQL Server 2005和Microsoft SQL Server 2008. ...

  8. 安装完sql server 后修改计算机名后不能进行发布的订阅的解决办法

    由于需要需要配置一个发布订阅,可是一直报告:" sql server 复制需要有实际的服务器名称才能连接到服务器,不支持通过别名.ip地址或其他任何备用名称进行连接.请指定实际的服务器名称“ ...

  9. win7(windows 7)系统下安装SQL2005(SQL Server 2005)图文教程——转载

    操作系统:Microsoft Windows 7 旗舰版(32位) 数据库版本:SQL Server 2005 简体中文开发板 数据库下载链接:http://pan.baidu.com/share/l ...

  10. win7(windows 7)系统下安装SQL2005(SQL Server 2005)图文教程

    操作系统:Microsoft Windows 7 旗舰版(32位) 数据库版本:SQL Server 2005 简体中文开发板 数据库下载链接: https://pan.baidu.com/s/1cq ...

随机推荐

  1. Vue+echart 展示后端获取的数据

    最近在合作做一个前后端分离项目时,为了测试我写的后端部分获取数据的效果,自己也学了一下 vue 的知识,在获取 json 信息这里也踩了很多坑. 这里列举下我返回的 json 部分信息: { &quo ...

  2. Longhorn+K8S+KubeSphere云端数据管理,实战 Sentry PostgreSQL 数据卷增量快照/备份与还原

    云端实验环境配置 VKE K8S Cluster Vultr 托管集群 https://vultr.com/ 3 个 worker 节点,kubectl get nodes. k8s-paas-71a ...

  3. IDEA插件:lombok

    1 安装插件lombok File => Settings => Plugins => Marketplace.在 Marketplace 中搜索 lombok 并安装,安装成功后 ...

  4. vue3和vue2的区别

    一.Vue3介绍 Vue 新版本的理念成型于 2018 年末,当时 Vue 2 的代码库已经有两岁半了.比起通用软件的生命周期来这好像也没那么久,但在这段时期,前端世界已经今昔非比了 在更新(和重写) ...

  5. 使用java.util.Timer实现定时任务,详解Thread.sleep() in a loop, probably busy-waiting问题

    很多时候,我们需要定时任务实现一些诸如刷新,心跳,保活等功能.这些定时任务往往逻辑很简单,使用定时任务的框架(例如springboot @Scheduled)往往大材小用. 下面是一个定时任务的典型写 ...

  6. JZOJ 5947.初音未来(miku)

    题目大意 维护一个数列 \(a_n\),\(m\) 次操作,每次对区间 \([l..r]\) 进行升序排序 求最后询问区间 \([L..R]\),输出 \(a_L,a_{L+1},···,a_{R}\ ...

  7. js中的for循环,循环次数会多出一次。当循环到最后一个的时候,循环还会继续,并且此时i就变成remove?

    for (i in points) 改成 for(var i = 0; i < points,length; i++)

  8. XShell 连接 VMware Linux

    如果你的系统是 Ubuntu,并且是精简安装的系统,极大可能使用ifconfig时会提示你安装相关依赖,所以你安装的时候要记得顺带安装 ifconfig: sudo apt install ifcon ...

  9. Integer使用==比较的问题

    Integer使用==比较的问题 new一个对象 public Integer(int value) { this.value = value; } 自动装箱 public static Intege ...

  10. linux系统安装MySQL服务,详细图文教程

    注:linux系统在安装操作系统时,如果选择了开发工具和兼容库后,一般默认都会安装MySQL服务的部分程序包.如果我们要自定义的安装全新的MySQL服务,就必须先把这些已经安装的程序包都卸载掉.否则, ...