Docker下安装MSSQL并使用Navicat远程连接(备忘录)

本文详细记录了在Docker环境下安装MSSQL Server的步骤,包括请求容器映像、运行容器、更改系统管理员密码等。此外,还介绍了如何在容器中还原和备份数据库,并通过Navicat进行远程连接,涉及设置账号、密码、主机和连接名,以及解决ODBC驱动问题。

Docker下安装MSSQL并使用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 进行本地连接。

                
<think>好的,用户想知道如何在阿里云ECS上通过Docker安装Redis,Navicat连接。首先,我得回忆一下Docker的基本操作,安装Docker的步骤,拉取Redis镜像,运行容器时的参数设置,比如端口映射和密码设置。然后,阿里云的安全组需要开放6379端口,这点很重要,不然外部连不上。用户可能对安全组配置不太熟悉,需要详细说明。接下来是Navicat连接步骤,包括填写主机IP、端口、密码。可能遇到的常见问题,比如连接超时或密码错误,也需要提前考虑进去。还要检查是否需要修改Redis配置文件,比如bind设置,允许远程连接。不过Docker运行的Redis通常通过命令参数配置,所以可能不需要手动改配置文件。另外,用户可能没有提到是否启用持久化,但加上--appendonly yes是个好习惯,应该包含在教程里。最后,确保步骤清晰,命令准确,避免用户操作时出错。</think>### 阿里云ECS Docker安装Redis通过Navicat连接教程 #### 步骤1:安装Docker 1. **更新系统软件包** ```bash sudo apt-get update && sudo apt-get upgrade -y ``` 2. **安装Docker依赖** ```bash sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common -y ``` 3. **添加Docker官方GPG密钥** ```bash curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - ``` 4. **添加Docker仓库** ```bash sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" ``` 5. **安装Docker引擎** ```bash sudo apt-get update && sudo apt-get install docker-ce docker-ce-cli containerd.io -y ``` #### 步骤2:通过Docker运行Redis 1. **拉取Redis镜像** ```bash sudo docker pull redis:latest ``` 2. **启动Redis容器** 使用以下命令启动容器,包含密码验证与持久化配置: ```bash sudo docker run -d --name myredis \ -p 6379:6379 \ -v /data/redis:/data \ redis --requirepass "your_password_here" --appendonly yes ``` - `-p 6379:6379`:端口映射(宿主机:容器) - `--requirepass`:设置访问密码 - `--appendonly yes`:启用AOF持久化[^1] #### 步骤3:配置阿里云安全组 1. 登录阿里云ECS控制台 2. 进入目标实例的**安全组配置** 3. 添加**入方向规则**: - 协议类型:`自定义TCP` - 端口范围:`6379/6379` - 授权对象:`0.0.0.0/0`(或指定IP段) #### 步骤4:通过Navicat连接Redis 1. 打开Navicat Premium 16+版本 2. 点击顶部菜单栏 `文件 > 新建连接 > Redis` 3. 填写连接信息: - **主机**:ECS公网IP地址 - **端口**:`6379` - **验证**:`密码` - **密码**:容器启动时设置的密码 4. 点击`测试连接`,确认成功后保存 #### 验证连接 ```bash # 查看容器运行状态 sudo docker ps | grep myredis # 通过redis-cli测试 sudo docker exec -it myredis redis-cli -a your_password_here 127.0.0.1:6379> ping # 应返回"PONG" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坦笑&&life

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值