Docker下安装MSSQL并使用Navicat远程连接(备忘录)
Docker下安装MSSQL并使用Navicat远程连接
- 一. Docker下安装MSSQL备忘录
-
- 一、安装SQL Server
-
- 1、从 Microsoft 容器注册表中请求 SQL Server 2022 (16.x) Linux 容器映像:
- 2、运行这个cu5的版本
- 3、看这个MSSQL运行没有?用 docker ps 命令:
- 4、如何知道这个`SQL`是否可以用?一旦 `SQL Server` 错误日志显示以下消息,就可连接此服务器:`SQL Server is now ready for client connections. This is an informational message; no user action is required`。 可以使用以下命令查看容器内的 `SQL Server` 错误日志:
- 5、更改系统管理员密码,使用 `docker exec` 运行`sqlcmd`,以使用 `Transact-SQL` 更改密码。 以下示例将从用户输入中读取旧密码和新密码。
- 二、连接到`SQL Server`
-
- 下列步骤在容器内部使用 `SQL Server` 命令行工具 `sqlcmd` 来连接 `SQL Server`。
-
- 1、使用 `docker exec -it` 命令在运行的容器内部启动交互式 `Bash Shell`。 在下面的示例中,sql1 是在创建容器时由 --name 参数指定的名称。
- 2、在容器内部使用完整路径通过 `sqlcmd` 进行本地连接。
- 3、如果成功,应会显示 `sqlcmd` 命令提示符:`1>`。在 `sqlcmd` 命令提示符中,粘贴以下 `Transact-SQL` 命令以创建测试数据库:
- 4、在下一行中,编写一个查询以返回服务器上所有数据库的名称:
- 5、运行 `Transact-SQL` 命令。 完成后,键入 `QUIT`。
- 6、如果想删除本教程中使用的 SQL Server 容器,请运行以下命令:
- 三、容器中还原SQL Server数据库
-
- 1、要通过 Docker 运行容器映像,可使用下列命令:
- 2、要查看容器,请使用 docker ps 命令:
- 3、使用 `docker exec docker exec` 来创建备份文件夹。 以下命令在 `SQL Server` 容器中创建 `/var/opt/mssql/backup` 目录 `/var/opt/mssql/backup`。
- 4、在sql2之中执行创建目录:
- 5、接下来,将 [WideWorldImporters-Full.bak](https://github.com/Microsoft/sql-server-samples/releases/tag/wide-world-importers-v1.0) 文件下载到主机。 并将备份文件下载为 `wwi.bak`。
- 6、使用 docker cp 将备份文件复制到容器中 /var/opt/mssql/backup:
- 7、在容器中运行 `sqlcmd`,列出备份中的逻辑文件名和路径。 这是通过`“RESTORE FILELISTONLY”Transact-SQL` 语句实现的`RESTORE FILELISTONLY`。
- 8、这是恢复数据库的,这个才可以看见
- 四、简单的SQL语句
- 五、容器中备份数据库
- 二. 使用`Navicat`远程连接
一. Docker下安装MSSQL备忘录
我们还是以阿里云的ECS,以Ubuntu 20.04 64位为例,在Docker中安SQL Server 2022 (16.x)。我们默认认为Docker已经安装好,Ubuntu 20.04也默认已经安装好了。
一、安装SQL Server
1、从 Microsoft 容器注册表中请求 SQL Server 2022 (16.x) Linux 容器映像:
sudo docker pull mcr.microsoft.com/mssql/server:2022-latest
注意:
我们这里请求的mssql 2022的最新cu,也可以说是版本,发一个更新包就更新一个cu。
也可以查询一下:mssql-server Docker hub 页
如果你有梯子,可以看到如下信息:
我们也可以指定当前最新的,比如:2022-CU6-ubuntu-20.04(2.9G)
;如果使用2022-latest,则表示一直用MSSQL 2022的最新版(只是一般这样)。为表示稳定,可以使用:
sudo docker pull mcr.microsoft.com/mssql/server:2022-CU5-ubuntu-20.04
来指定版本,虽然是次新版,但是体积只有1.58G。pull要快许多!
2、运行这个cu5的版本
sudo docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=Abc123+++" \
-p 1433:1433 --name sql1 --hostname sql1 \
-d \
mcr.microsoft.com/mssql/server:2022-CU5-ubuntu-20.04
下表对前一个 docker run 示例中的参数进行了说明:
参数 | 说明 |
---|---|
-e “ACCEPT_EULA=Y” | 将 ACCEPT_EULA 变量设置为任意值,以确认接受最终用户许可协议。 SQL Server 映像的必需设置。 |
-e “MSSQL_SA_PASSWORD=Abc123+++” | 指定至少包含 8 个字符且符合SQL Server 密码要求的强密码。 SQL Server 映像的必需设置。 |
-p 1433:1433 | 将主机环境中的 TCP 端口(第一个值)映射到容器中的 TCP 端口(第二个值)。 在此示例中,SQL Server 侦听容器中的 TCP 1433,此容器端口随后会对主机上的 TCP 端口 1433 公开。 |
–name sql1 | 为容器指定一个自定义名称,而不是使用随机生成的名称。 如果运行多个容器,则无法重复使用相同的名称。 |
–hostname sql1 | 用于显式设置容器主机名。 如果未指定主机名,则主机名默认为容器 ID,这是随机生成的系统 GUID。 |
-d | 在后台运行容器(守护程序)。 |
mcr.microsoft.com/mssql/server:2022-CU5-ubuntu-20.04 | SQL Server Linux 容器映像。 |
3、看这个MSSQL运行没有?用 docker ps 命令:
sudo docker ps -a
如果执行正确会看到与下面类似的结果:
如果 STATUS 列显示 Up 状态,则 SQL Server 正在容器中运行,并且在侦听 PORTS 列中指定的端口。
4、如何知道这个SQL
是否可以用?一旦 SQL Server
错误日志显示以下消息,就可连接此服务器:SQL Server is now ready for client connections. This is an informational message; no user action is required
。 可以使用以下命令查看容器内的 SQL Server
错误日志:
docker exec -t sql1 cat /var/opt/mssql/log/errorlog | grep connection
如果执行正确会看到与下面类似的结果:
5、更改系统管理员密码,使用 docker exec
运行sqlcmd
,以使用 Transact-SQL
更改密码。 以下示例将从用户输入中读取旧密码和新密码。
sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \
-S localhost -U SA \
-P "$(read -sp "Enter current SA password: "; echo "${
REPLY}")" \
-Q "ALTER LOGIN SA WITH PASSWORD=\"$(read -sp "Enter new SA password: "; echo "${REPLY}")\""
如果执行正确会看到与下面类似的结果:
这里输入新的口令,要输入两次,两次必须相同。
二、连接到SQL Server
下列步骤在容器内部使用 SQL Server
命令行工具 sqlcmd
来连接 SQL Server
。
1、使用 docker exec -it
命令在运行的容器内部启动交互式 Bash Shell
。 在下面的示例中,sql1 是在创建容器时由 --name 参数指定的名称。
sudo docker exec -it sql1 "bash"
2、在容器内部使用完整路径通过 sqlcmd
进行本地连接。
/opt/mssql-tools/bin
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)