温馨提示×

Debian下SQLServer如何排错

小樊
50
2026-09-04 17:09:42
栏目: 云计算

在 Debian 下使用 SQL Server(通常是 Microsoft SQL Server on Linux)时,排错一般围绕 服务状态、日志、系统依赖、网络、配置参数 几个方面进行。下面给你一套系统化的排错思路和方法。


一、确认 SQL Server 服务状态

1. 查看服务是否运行

systemctl status mssql-server

常见状态:

  • active (running):正常
  • failed:启动失败(重点看日志)
  • inactive:未启动

2. 启动 / 重启服务

sudo systemctl start mssql-server
sudo systemctl restart mssql-server

二、查看 SQL Server 错误日志(最重要)

SQL Server on Linux 日志默认位置:

/var/opt/mssql/log/errorlog

查看日志:

sudo tail -n 100 /var/opt/mssql/log/errorlog

常见错误示例:

  • Unable to start SQL Server
  • Could not create listener
  • Failed to allocate memory
  • TLS / certificate error

三、检查系统依赖和资源

1. 内存不足(最常见)

SQL Server 至少需要 2GB RAM

查看内存:

free -h

如内存不足:

  • 关闭其他服务
  • 或限制 SQL Server 内存(需进入 SQL 后配置)

2. 磁盘空间

df -h /var/opt/mssql

数据或日志目录满会导致无法启动。


3. 文件权限

数据目录默认:

/var/opt/mssql

权限问题常见于:

  • 手动移动数据文件
  • 用 root 创建文件

修复示例:

sudo chown -R mssql:mssql /var/opt/mssql

四、网络与连接问题

1. 端口监听

SQL Server 默认端口:1433

ss -tulnp | grep 1433

如果没有监听:

  • 服务未启动
  • 配置了不同端口

2. 防火墙(Debian 常用 nftables / ufw)

sudo ufw allow 1433/tcp

或确认:

sudo ufw status

3. 远程连接失败

检查:

  • IP 是否正确
  • 是否启用 TCP/IP(Linux 默认启用)
  • 账号是否允许远程登录

测试连接:

sqlcmd -S localhost -U sa

五、SA 密码与登录问题

1. 修改 SA 密码

sudo /opt/mssql/bin/mssql-conf set-sa-password

2. 登录失败常见原因

  • SA 被禁用
  • 密码错误
  • 区域设置问题(语言/键盘)

六、使用 mssql-conf 排错与配置

查看配置:

sudo /opt/mssql/bin/mssql-conf list

常见操作:

sudo /opt/mssql/bin/mssql-conf traceflag 3226 on
sudo /opt/mssql/bin/mssql-conf set telemetry.customerfeedback false

重置配置:

sudo /opt/mssql/bin/mssql-conf unset <parameter>

七、系统级日志(Linux 层)

1. systemd 日志

journalctl -u mssql-server -n 100

2. 系统日志

sudo dmesg | tail

用于排查:

  • OOM(内存杀进程)
  • 磁盘错误
  • 权限问题

八、常见故障速查表

问题 可能原因 解决
无法启动 内存不足 增加内存
启动慢 磁盘 IO 差 换 SSD
连接超时 防火墙 开放 1433
登录失败 SA 密码错 重置密码
TLS 错误 系统时间错误 同步时间
数据损坏 强制关机 恢复备份

九、排错顺序建议(标准流程)

  1. systemctl status
  2. errorlog
  3. journalctl
  4. 内存 / 磁盘 / 权限
  5. 网络 / 端口
  6. mssql-conf

如果你能告诉我:

  • 具体报错信息
  • Debian 版本
  • SQL Server 版本
  • 是本地还是远程连接失败

我可以给你更精准的排错方案。

0