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

最新文章

  1. Code::Blocks如何支持C++11特性
  2. WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
  3. svn 强制用户添加注释 和 允许用户修改注释
  4. hdu----(2222)Keywords Search(ac自动机)
  5. 【转】数据库范式(1NF 2NF 3NF BCNF)详解一
  6. RHadoop教程翻译系列 _Mapreduce(1)_第一个Mapreduce任务
  7. .c和.h文件的区别(头文件与之实现文件的的关系~ )
  8. 注解配置 ssh
  9. SDCard助手类
  10. AES加密 C++调用Crypto++加密库 样例
  11. Android开发Tips-1
  12. EasyUI内容页Tabs。
  13. Linux服务器断电导致挂载及xfs文件损坏的修复方法
  14. 暖春许愿季丨i春秋给你送福利
  15. 使用Ant Build时提示错误: 编码GBK的不可映射字符
  16. 实现判断条件中有in的判断
  17. 『TensorFlow』slim模块常用API
  18. 顺藤摸瓜:一个专黑建筑行业的QQ黏虫团伙现形记
  19. 从零开始学 Web 之 Ajax(一)服务器相关概念
  20. Rancher的简单部署和使用

热门文章

  1. 普冉PY32系列(一) PY32F0系列32位Cortex M0+ MCU简介
  2. elasticsearch之search template
  3. LeetCode-343. 整数拆分 - 题解分析
  4. 浅谈Pytest中的warning处理
  5. MySQL-多表查询的两种方法、Navicat、python操作MySQL
  6. IDEA启动报错 NoClassDefFound
  7. 滴水 10/13号完成 打印出DOS PE头 节表 开源
  8. js中的Object.keys、array.map、groupBy、call、apply总结分享
  9. 自动化测试如此容易!多语言自动化测试框架 Selenium 编程(C#篇)
  10. Linux服务器数据备份恢复