一、前言
1、可以直接参考微软官方文档 快速入门:使用 Docker 运行 SQL Server Linux 容器映像,这里主要是说一些注意点和坑
二、安装
1、拉取镜像
docker pull mcr.microsoft.com/mssql/server:2022-latest
2、创建挂载目录,这里只是比官方多了一个数据的挂载目录
# 先创建挂载数据目录
mkdir -p /data/docker/sqlserver/data
chmod -R 777 /data/docker/sqlserver/data
3、构建镜像
注意这里的密码需要复杂一下,官方有要求的
docker run --restart=always \-v /data/docker/sqlserver/data:/var/opt/mssql \-e 'ACCEPT_EULA=Y' \-e "MSSQL_SA_PASSWORD=lP7887h1234578P783bX*" \-p 1433:1433 \-e TZ=Asia/Shanghai \--name sqlserver1 \--hostname sqlserver1 \-d mcr.microsoft.com/mssql/server:2022-latest
4、测试是否成功,其中的 -C 是为了解决安全连接时的问题(或者换成 -No),可以参考 Docker 安装sql server 登陆失败,其中使用 -C
或者 -No
都可以,其中账号 sa
,密码 lP7887h1234578P783bX*
# 进入容器里面
docker exec -it sqlserver1 "bash"# 再登录sqlserver
/opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "lP7887h1234578P783bX*" -C
# /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "lP7887h1234578P783bX*" -No# 查询已经存在的数据库、
SELECT name AS DatabaseName FROM sys.databases;
go# 查询数据库版本
select @@version
go
三、工具连接
3.1、navicat
1、如下配置
2、如果你直接连接肯定回报错,连接不上,我这里是 nacicat16,参考 Navicat Premium 16 连接SQL Server 报错:[M002][Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序(0),其实主要是本地没有连接器,安装一下 Navica t根目录下的 msodbcsql_64.msi就可以了,老版本叫 sqlncli_x64.msi
3、这里要注意一下,还需要考虑 navicat的版本和sqlserver的版本,如果你的navicat版本太低了,而sqlserver版本很高,比如我之前用的是navicat12的版本连接sqlserver2022的版本,执行 sqlncli_x64.msi 也是没有效果的,因为版本差异太大了
3.2、dbeaver
1、如果一时找不到Navica合适的,可以直接用 dbeaver,我试过,下载最新的可以直接连接上去,回会提示你下载驱动,你点击下载就好