在统信UOS上部署SQL Server需通过Docker容器(推荐)或APT源安装,二者均仅支持x86_64架构;直接运行Windows安装包无效;Docker方式需启用服务、拉取镜像、创建持久化目录、正确配置环境变量与挂载卷,并验证日志中“Server is listening”;APT方式需导入Ubuntu 16.04源、运行mssql-conf setup初始化、配置网络与防火墙;最后用sqlcmd验证连接及版本查询。

在统信UOS系统上搭建SQL Server数据库环境,需绕过原生不支持的限制,通过容器化或官方Linux版适配方案实现;直接双击exe安装包或运行Windows MSI将完全失败,因为UOS是Linux内核系统,无法执行Windows二进制程序。
使用Docker部署SQL Server 2019官方镜像
这是开发与测试场景下最稳定、复现性最强的方式,依赖UOS已启用Docker服务且为x86_64架构。
第一步:确认Docker服务处于激活状态,执行sudo systemctl is-active docker;若返回inactive,必须先运行sudo systemctl start docker && sudo systemctl enable docker,否则后续所有镜像拉取和容器启动都会报“Cannot connect to the Docker daemon”错误。
第二步:拉取Microsoft官方Linux镜像,命令为sudo docker pull mcr.microsoft.com/mssql/server:2019-latest。注意该镜像仅支持x86_64,ARM64设备(如鲲鹏)会提示“no matching manifest”,此时不可强用qemu模拟,性能与稳定性均无保障。
第三步:创建宿主机持久化目录,避免容器删除后数据丢失:sudo mkdir -p /opt/mssql/data /opt/mssql/log。这一步不能跳过,否则容器内SQL Server初始化时会因/var/opt/mssql路径不可写而崩溃退出。
第四步:运行容器,关键参数必须完整:sudo docker run -d --name sqlserver -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=StrongPass123!' -p 1433:1433 -v /opt/mssql/data:/var/opt/mssql/data -v /opt/mssql/log:/var/opt/mssql/log mcr.microsoft.com/mssql/server:2019-latest。【SA密码必须同时包含大写字母、小写字母、数字和符号,长度不少于8位,否则容器日志会持续报错“Password validation failed”并反复重启】
第五步:检查容器是否真正就绪,执行sudo docker logs sqlserver 2>&1 | grep "Server is listening on";只有看到这行输出,才表示SQL Server实例已完成初始化并开始接受连接。
通过APT源安装SQL Server(仅限UOS桌面/服务器版20及以上)
该方式适用于希望以systemd服务形式管理SQL Server、且接受Ubuntu 16.04兼容源的用户;它不依赖Docker,但仅支持x86_64,且安装后默认监听localhost,远程访问需额外配置。
方法一:导入密钥并添加源
在 Linux 上通过 Docker 运行 OpenClaw,并使用 Tailscale 实现远程访问。⚠️ 涉及 sudo、Docker、Tailscale和凭证挂载——请先查阅安全章节...
执行wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -导入GPG签名密钥;接着运行curl https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-2019.list | sudo tee /etc/apt/sources.list.d/mssql-server.list注册软件源。注意此处固定使用Ubuntu 16.04源地址——UOS未提供独立repo,这是微软官方唯一认证的兼容路径。
方法二:安装与初始化
更新索引并安装:sudo apt update && sudo apt install -y mssql-server。安装完成后,必须立即运行sudo /opt/mssql/bin/mssql-conf setup,按提示选择版本(推荐Developer)、设置SA密码。这一步不可用空格或纯数字密码,否则setup脚本会中断并留下未完成状态。
方法三:启用远程访问
默认配置禁止外部连接。编辑/var/opt/mssql/mssql.conf,在[network]节下添加tcpPort = 1433和ipAddress = 0.0.0.0;然后重启服务:sudo systemctl restart mssql-server。最后放行防火墙端口:sudo ufw allow 1433(UOS桌面版默认启用ufw,服务器版若用firewalld则改用firewall-cmd --add-port=1433/tcp --permanent && firewall-cmd --reload)。
验证SQL Server是否可用
安装或容器启动完成后,必须用命令行工具实测连通性,图形化工具在此阶段不可靠。
先安装客户端工具:curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - && curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list && sudo apt update && sudo apt install -y mssql-tools unixodbc-dev。
将/opt/mssql-tools/bin/加入PATH,执行echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc && source ~/.bashrc。
连接本地实例:sqlcmd -S localhost -U SA -P 'StrongPass123!'。如果返回1> 提示符,说明已进入T-SQL交互模式;输入SELECT @@VERSION;→回车→GO,能正确返回SQL Server版本信息即为成功。

















