如何在Ubuntu上自定义SQL Server配置

在 Ubuntu 上自定义 SQL Server 配置一 基础准备与工具安装 SQL Server 命令行工具,便于本地验证与后续配置:导入 GPG 密钥并添加 Microsoft 仓库,安装 mssql-tools 与 unixodbc-dev。将 /opt/mssql-tools/bin 加入 PATH(交互式写入 ~/.bash_profile,非交互式写入 ~/.bashrc)。本地

在 Ubuntu 上自定义 SQL Server 配置

一 基础准备与工具

  • 安装 SQL Server 命令行工具,便于本地验证与后续配置:
    • 导入 GPG 密钥并添加 Microsoft 仓库,安装 mssql-toolsunixodbc-dev
    • /opt/mssql-tools/bin 加入 PATH(交互式写入 ~/.bash_profile,非交互式写入 ~/.bashrc)。
    • 本地连接测试:sqlcmd -S localhost -U sa -P '<YourPassword>',出现 1> 提示符表示连通。

二 使用 mssql-conf 完成常用自定义

  • 核心工具与配置文件:
    • 使用 /opt/mssql/bin/mssql-conf 脚本进行配置,脚本会修改 /var/opt/mssql/mssql.conf 中的配置项。
    • 常用项目包括:AgentCollationDefault data/log/master/backup/dump/error log 目录Memory limitTCP portTLSTrace flagsHigh availabilityMicrosoft Distributed Transaction Coordinator 等。
  • 典型操作示例(按需执行并重启服务):
    • 启用 SQL Server Agent:sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
    • 修改监听端口(示例改为 1434):sudo /opt/mssql/bin/mssql-conf set tcpport 1434
    • 调整内存上限(示例 4GB):sudo /opt/mssql/bin/mssql-conf set memory.memorylimitmb 4096
    • 修改默认数据/日志目录:
      • 先创建目录并赋权:sudo mkdir -p /data/mssql/data /data/mssql/log && sudo chown mssql:mssql /data/mssql/{data,log}
      • 再设置:sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdatadir /data/mssql/data
      • 再设置:sudo /opt/mssql/bin/mssql-conf set filelocation.defaultlogdir /data/mssql/log
    • 应用变更:sudo systemctl restart mssql-server
    • 验证端口监听:ss -tulpen | grep 1434(或 netstat -tulpen | grep 1434
    • 远程连接时在客户端指定端口:sqlcmd -S <IP>,1434 -U sa -P '<YourPassword>'

三 配置文件与目录迁移要点

  • 配置持久化位置为 /var/opt/mssql/mssql.conf,手工编辑该文件与 mssql-conf set 等效;修改后需重启服务生效。
  • 迁移系统库(如 master)或用户库目录时,建议按下列顺序操作:
    • 停止服务:sudo systemctl stop mssql-server
    • 同步数据(保持权限一致):sudo rsync -av /var/opt/mssql/data/master.mdf /data/mssql/data/
    • 使用 mssql-conf 设置新的默认目录(如 filelocation.defaultdatadirfilelocation.defaultmasterdatadir 等)
    • 启动服务:sudo systemctl start mssql-server
    • 注意:变更系统库目录存在风险,务必先完整备份,并在维护时段操作。

四 远程访问与安全加固

  • 防火墙放行:
    • UFW:sudo ufw allow 1433/tcp(如自定义端口,请放行对应端口)。
  • 启用与验证:
    • 远程连接测试:sqlcmd -S <服务器IP或域名>,<端口> -U sa -P '<YourPassword>'
    • 监听检查:ss -tulpen | grep <端口>
  • 安全建议:
    • 避免使用 SA,为应用创建最小权限的登录名与用户;必要时启用 TLS 加密传输(在 mssql-conf 中配置 TLS 相关项)。

五 常见问题快速排查

  • 服务无法启动:查看日志 sudo journalctl -u mssql-server -xe,根据报错修复(如目录权限、端口占用、配置项错误等)。
  • 端口未监听或连接被拒:确认 mssql-conf 中的 tcpport 值、防火墙规则与云安全组策略;用 ss -tulpen | grep <端口> 复核监听。
  • 客户端连不上:本地先 sqlcmd -S localhost -U sa 验证凭据与实例可达性,再排查网络与端口转发。
  • 修改目录后报错:核对目录属主为 mssql:mssql,且 SELinux/AppArmor 未拦截(如启用需放行相应路径)。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/1486053.html

(0)
派派
上一篇 2026-01-06
下一篇 2026-01-06

发表回复

登录后才能评论