在Docker上安装部署SQL Server2019 Express

安装指南

Step1:拉取并运行 SQL Server Linux 容器映像

1.从 Microsoft 容器注册表中提取 SQL Server 2019 Linux 容器镜像。

docker pull mcr.microsoft.com/mssql/server:2019-latest

2.创建目录
当Docker容器删除后,容器里面的数据会随之被清空,所以我们需要通过挂载宿主机磁盘目录,来永久存储数据。执行以下指令创建存储数据库文件的目录。

mkdir /etc/sqlserver_data

3.修改目录权限
由于容器没有权限访问外部目录,所以我们需要修改目录权限

chmod 777 /etc/sqlserver_data

4.使用 Docker 运行 Linux 容器镜像,由于我们使用的是Express版本,所以在命令行上需要添加命令参数: -e “MSSQL_PID=Express”

docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=SA@12345" -e "MSSQL_PID=Express" -p 1433:1433  --name sql-server2019 --hostname sql-server2019 -v /etc/sqlserver_data:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2019-latest 

说明:

-e "ACCEPT_EULA=Y" 将 ACCEPT_EULA 变量设置为任意值,以确认接受 最终用户许可协议。 SQL Server 映像的必需设置。

-e "SA_PASSWORD=<YourStrong@Passw0rd>"指定至少包含 8 个字符且符合 SQL Server 密码要求的强密码。 SQL Server 映像的必需设置。 默认情况下,密码的长度必须至少为 8 个字符,并且必须包含以下四种字符中的三种:大写字母、小写字母、十进制数字和符号
 
 "MSSQL_PID=<your_product_id | edition_name> (default: Developer)" 这里可以设置版本类型或者产品激活码,如果不填写,默认是开发版

-p 1433:1433将主机环境中的 TCP 端口(第一个值)映射到容器中的 TCP 端口(第二个值)

-v /etc/sqlserver_data:/var/opt/mssql:表示/etc/sqlserver_data目录挂载到容器的/var/opt/mssql目录,这个目录是用来存储数据库文件的,所以最好挂载到容器外部,避免因为不小心删除容器而丢失数据。

--name sql-server2019   为容器指定自定义名称,而不是随机生成的名称。如果运行多个容器,则不能重复使用此相同名称。

--hostname sql-server2019   用于显式设置容器主机名。如果未指定主机名,则默认为容器 ID,即随机生成的系统 GUID。

-d 在后台运行容器(守护程序)。

mcr.microsoft.com/mssql/server:2019-latest   SQL Server 2019 Linux 容器映像。

5.要查看您的 Docker 容器,请使用命令

sudo docker ps -a

应会看到类似于以下内容的输出:

CONTAINER ID   IMAGE                                        COMMAND                    CREATED         STATUS         PORTS                                       NAMES
d4a1999ef83e   mcr.microsoft.com/mssql/server:2019-latest   "/opt/mssql/bin/perm..."   2 minutes ago   Up 2 minutes   0.0.0.0:1433->1433/tcp, :::1433->1433/tcp   sql-server2019

6.如果要修改sa密码,请执行以下指令

docker exec -it sql-server2019 /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "旧密码" -Q 'ALTER LOGIN SA WITH PASSWORD="新密码"'```

Step2:使用命令行连接到SQL Server数据库服务器

1.执行以下命令,开启一个新的bash会话。(名称由创建容器时的参数指定)

 docker exec -it sql-server2019 "bash"
 
 #说明
 sql-server2019 为刚刚创建的容器名称

2.进入容器后使用其完整路径与sqlcmd进行本地连接

 /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "SA@12345"

Step3:通过命令行方式进行数据库管理

验证安装的SQL Server的版本是否为Express
1.在sqlcmd命令行中输入以下指令

Select @@version

2.键入一个新行执行前面的命令

GO

3.此查询的输出示例如下

Microsoft SQL Server 2019 (RTM-CU18) (KB5017593) - 15.0.4261.1 (X64)
        Sep 12 2022 15:07:06
        Copyright (C) 2019 Microsoft Corporation
        Express Edition (64-bit) on Linux (Ubuntu 20.04.5 LTS) <X64>                  

由此可见,我们正确的安装了SQL Server 2019 Express
创建新数据库
以下步骤创建一个名为 TestDB
1.在sqlcmd命令提示符下,粘贴以下 Transact-SQL 命令以创建测试数据库:

CREATE DATABASE TestDB;

2.在下一行中,编写一个查询以返回服务器上所有数据库的名称:

SELECT Name from sys.databases;

3.前两个命令未立即执行。您必须键入一个新行才能执行前面的命令:

GO

插入数据
接下来创建一个新的数据表,并插入两行新的数据
1.在sqlcmd命令提示符中,切换到刚刚创建的新数据库TestDB:

USE TestDB;

2.创建一个名字为dbo.Inventory的新数据表

CREATE TABLE dbo.Inventory (
   id INT, name NVARCHAR(50),
   quantity INT
);

3.将数据插入新表中:

INSERT INTO dbo.Inventory VALUES (1, 'banana', 150);
INSERT INTO dbo.Inventory VALUES (2, 'orange', 154);

4.执行前面的命令:

GO

选择数据
1.查询dbo.Inventory表中的所有数据

SELECT * FROM dbo.Inventory;

2.执行前面的命令

GO

退出 sqlcmd 命令提示符
若要结束sqlcmd会话,请键入:QUIT

QUIT

Setp4:通过远程方式使用SSMS客户端连接到SQL Server进行可视化数据库服务器管理

Windows 上的 SQL Server 工具连接到 Linux 上的 SQL Server 实例的方式与连接到任何远程 SQL Server 实例的方式相同。
以SSMS客户端为例,连接到Docker中的SQL Server
在这里插入图片描述
连接成功后的页面
在这里插入图片描述

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值