ITPub博客

首页 > 数据库 > > 在Docker上安装MSSQL(Microsoft SQL Server)数据库

在Docker上安装MSSQL(Microsoft SQL Server)数据库

作者:u_9ff4c058a0e0 时间:2022-04-01 09:48:38 0 删除 编辑

在转移到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 MSSQL_1433 /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 'RESTORE DATABASE 数据库名 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 运行 SQL Server 2017 容器映像Run the SQL Server 2017 container image with Docker 还原 Linux Docker 容器中的 SQL Server 数据库Restore a SQL Server database in a Linux Docker container

来源 https://zhuanlan.zhihu.com/p/35410202

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69999831/viewspace-3135417/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: VictoriaMetrics介绍
下一篇: 浅谈NoSQL
请登录后发表评论 登录
全部评论

注册时间:2022-02-11

  • 博文量
    1828
  • 访问量
    20576