Ubuntu 22.04安装SQL Server指南

看起来在安装过程中出现了问题,导致 mssql-server 没有正确安装。以下是排查和修复步骤:


1. 检查是否成功安装了 mssql-server

运行以下命令,确认是否已安装:

bash 复制代码
dpkg -l | grep mssql-server

如果没有任何输出,说明 mssql-server 未正确安装。


2. 重新安装 SQL Server

(1) 清理之前的安装(如有残留)
bash 复制代码
sudo apt remove mssql-server
sudo rm -rf /etc/apt/sources.list.d/mssql-server*
(2) 重新添加存储库并安装
bash 复制代码
# 重新导入 Microsoft GPG 密钥
curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc

# 添加 SQL Server 2022 存储库
sudo add-apt-repository "$(curl https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list)"

# 更新并安装
sudo apt-get update
sudo apt-get install -y mssql-server
(3) 检查安装是否成功

安装完成后,验证文件是否存在:

bash 复制代码
ls /opt/mssql/bin/mssql-conf

如果文件存在,继续下一步配置;如果仍不存在,可能是网络或存储库问题。


3. 手动下载并安装 Deb 包(可选)

如果 apt 安装失败,可以尝试手动下载:

bash 复制代码
# 下载 Deb 包
wget https://packages.microsoft.com/ubuntu/22.04/mssql-server-2022/pool/main/m/mssql-server/mssql-server_<version>.amd64.deb

# 安装依赖
sudo apt-get install -y libatomic1 libxml2

# 安装 Deb 包
sudo dpkg -i mssql-server_<version>.amd64.deb
sudo apt-get install -f  # 修复依赖

替换 <version> 为实际版本号(可从存储库 URL 获取)。


4. 运行配置向导

如果 /opt/mssql/bin/mssql-conf 已存在:

bash 复制代码
sudo /opt/mssql/bin/mssql-conf setup

按提示选择版本(如 DeveloperExpress)并设置 SA 密码。


5. 启动服务

bash 复制代码
sudo systemctl start mssql-server
sudo systemctl enable mssql-server
systemctl status mssql-server --no-pager

6. 常见问题排查

(1) 存储库问题

如果 apt-get update 报错,检查存储库配置:

bash 复制代码
cat /etc/apt/sources.list.d/mssql-server*.list

确保内容为:

复制代码
deb [arch=amd64] https://packages.microsoft.com/ubuntu/22.04/mssql-server-2022 jammy main
(2) 依赖问题

修复依赖:

bash 复制代码
sudo apt-get install -f
(3) 日志检查

查看安装错误日志:

bash 复制代码
journalctl -u mssql-server -xe

7. 验证安装

成功安装后,使用 sqlcmd 连接:

bash 复制代码
sqlcmd -S localhost -U SA -P '你的密码'

输入 SELECT @@VERSION; 并执行 GO


如果仍有问题,请提供以下信息:

  1. 运行 sudo apt-get install -y mssql-server 的完整输出。
  2. ls /opt/mssql/bin/ 的结果。
  3. 错误日志(journalctl -u mssql-server)。
相关推荐
Up九五小庞15 分钟前
jenkins从入门到精通-P1—九五小庞
运维·jenkins
乐维_lwops29 分钟前
运维端口管理闭环:从暴露面测绘到自动化封禁!
运维·自动化·php
Cyber4K40 分钟前
MySQL--组从复制的详解及功能演练
运维·数据库·mysql·云原生
程序员JerrySUN1 小时前
OpenCV 全解读:核心、源码结构与图像/视频渲染能力深度对比
linux·人工智能·驱动开发·opencv·计算机视觉·缓存·音视频
wyjcxyyy2 小时前
打靶日记-RCE-labs(续)
linux·运维·服务器
Ray Song2 小时前
Linux iptables防火墙操作
linux·网络·iptables·防火墙
is08153 小时前
linux 启动流程?
linux
六点半8883 小时前
【Linux】Linux编译器-gcc/g++使用
linux·运维·服务器
穷人小水滴3 小时前
Android 运行 deno 的新方法 (3): Termux 胖喵安初
android·linux
muzi_liii3 小时前
Linux权限
linux