部署SQL Server数据库(Linux)

SQL Server是由Microsoft开发和维护的关系型数据库管理系统(DBMS),广泛用于企业和组织的数据存储和管理。本文介绍如何在Linux系统的ECS实例上部署SQL Server数据库。

前提条件

  • 实例内存不能小于2 GiB。

  • 实例已分配固定公网IP地址或绑定弹性公网IP(EIP)。如您不清楚如何开通公网,请参见开通公网

  • 实例安全组的入方向规则已放行22端口。具体操作,请参见添加安全组规则

安装SQL Server

Alibaba Cloud Linux 2/3、CentOS 7/8

  1. 添加Microsoft存储库。

    说明

    以下命令中的<package>参数需替换为对应系统要添加Microsoft存储库。详细信息,请参见Microsoft存储库

    sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/<package>
    • 例如,在Alibaba Cloud Linux 3/CentOS 8中添加mssql-server-2019存储库。

      sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2019.repo
    • 例如,在Alibaba Cloud Linux 2/CentOS 7中添加mssql-server-2019存储库。

      sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2019.repo
  2. 安装SQL Server。

    sudo yum install -y mssql-server
  3. 选择所需版本并设置密码。

    说明
    • Evaluation、Developer 和 Express版本为免费许可的。

    • 密码长度必须至少为 8 个字符,须同时包含大写字母、小写字母、数字、特殊字符中的任意三种。

    sudo /opt/mssql/bin/mssql-conf setup
  4. 启动SQL Server并设置开机自启。

    sudo systemctl start mssql-server
    sudo systemctl enable mssql-server
  5. 查看服务运行状态。

    systemctl status mssql-server

    如下图所示,表示服务启动正常。

    image

Ubuntu

  1. 添加MicrosoftGPG密钥。

    curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
  2. 添加Microsoft存储库。

    说明

    以下命令中的<package>参数需替换为对应系统要安装的SQL Server。详细信息,请参见Microsoft存储库

    sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/<package>)"

    例如在Ubuntu 20.04系统中注册Microsoft存储库。

    sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2019.list)"
  3. 安装SQL Server。

    sudo apt-get update
    sudo apt-get install -y mssql-server
  4. 选择所需版本并设置密码。

    说明
    • Evaluation、Developer 和 Express版本为免费许可的。

    • 密码长度必须至少为 8 个字符,须同时包含大写字母、小写字母、数字、特殊字符中的任意三种。

    sudo /opt/mssql/bin/mssql-conf setup
  5. 启动SQL Server并设置开机自启。

    sudo systemctl start mssql-server
    sudo systemctl enable mssql-server
  6. 查看服务运行状态。

    systemctl status mssql-server

    如下图所示,表示服务启动正常。

    image

安装SQL Server命令行工具

Alibaba Cloud Linux 2/3、CentOS 7/8

  1. 下载Microsoft存储库配置文件。

    说明

    以下命令中的<package>参数需替换为对应系统要下载的Microsoft存储库配置文件。详细信息,请参见Microsoft存储库

    curl https://packages.microsoft.com/config/rhel/<package> | sudo tee /etc/yum.repos.d/mssql-release.repo
    • 例如,在Alibaba Cloud Linux 3/CentOS 8中下载Microsoft存储库配置文件。

      curl https://packages.microsoft.com/config/rhel/8/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo
    • 例如,在Alibaba Cloud Linux 2/CentOS 7中下载Microsoft存储库配置文件。

      curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo
  2. (可选)如果安装了旧版本的mssql-tools,请删除所有旧的unixODBC包。

    sudo yum remove mssql-tools unixODBC-utf16 unixODBC-utf16-devel
  3. 使用unixODBC开发人员包安装mssql-tools18

    sudo yum install -y mssql-tools18 unixODBC-devel
  4. (可选)更新mssql-tools至最新版本。

    sudo yum check-update
    sudo yum update mssql-tools18
  5. 配置环境变量。

    • 使sqlcmdbcp从登录会话的bash shell进行访问。

      echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bash_profile
      source ~/.bash_profile
    • 使sqlcmdbcp从交互式/非登录会话的bash shell进行访问。

      echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
      source ~/.bashrc

Ubuntu

  1. 下载公共存储GPG密钥。

    curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
  2. 注册Microsoft Ubuntu存储库。

    以下命令中的<Version>参数需替换为对应Ubuntu系统版本。

    curl https://packages.microsoft.com/config/ubuntu/<Version>/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list

    例如在Ubuntu 20.04系统中注册Microsoft存储库。

    curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
  3. 使用unixODBC开发人员包安装mssql-tools18

    sudo apt-get update
    sudo apt-get install mssql-tools18 unixodbc-dev
  4. (可选)更新mssql-tools至最新版本。

    sudo apt-get update  
    sudo apt-get install mssql-tools18
  5. 配置环境变量。

    • 使sqlcmdbcp从登录会话的bash shell进行访问。

      echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bash_profile
      source ~/.bash_profile
    • 使sqlcmdbcp从交互式/非登录会话的bash shell进行访问。

      echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
      source ~/.bashrc

连接SQL Server并禁用sa账号

首次使用sa账号登录SQL Server后,为了确保系统安全,建议创建新账号并禁用sa账号的登录。

  1. 连接SQL Server。

    说明

    若要远程连接SQL Server。

    • 实例安全组的入方向规则已放行1433端口。具体操作,请参见添加安全组规则

    • localhost替换为指定服务器的名称或IP地址。

    首次登录账号使用sa,创建新账号登录时,需将sa替换为新账号。

    sqlcmd -No -S localhost -U sa

    参数值说明:

    -S:指定服务器的名称或IP地址。

    -U:用户名。

  2. 创建新账号并禁用sa账号。

    • <YOUR_USER>替换为您要设置的账号。

    • <YOUR_PASSWORD>替换为您要设置的密码。

    1. 创建账号。

      CREATE LOGIN <YOUR_USER> WITH PASSWORD = '<YOUR_PASSWORD>';

      执行GO使命令生效。

      GO
    2. 分配sysadmin角色。

      ALTER SERVER ROLE sysadmin ADD MEMBER <YOUR_USER>;

      执行GO使命令生效。

      GO
    3. 禁用sa账号。

      ALTER LOGIN sa DISABLE;

      执行GO使命令生效。

      GO
    4. 查看修改是否生效。

      SELECT name, is_disabled FROM sys.server_principals WHERE name IN ('sa', '<YOUR_USER>');

      执行GO使命令生效。

      GO

      如下图所示,is_disabled=1表示被禁用;is_disabled=0表示启用。

      image

相关文档

  • 如果您希望更方便地管理数据库,并享有高可用、高可靠、高安全、可扩展的托管数据库服务,可以使用阿里云云数据库RDS。RDS是阿里云提供的稳定可靠、可弹性伸缩的关系型云数据库,支持MySQL、SQL Server、PostgreSQLMariaDB引擎,具备容灾、备份、恢复、迁移等方面的全套解决方案。详细信息,请参见云数据库RDS简介

  • 您可以通过数据迁移工具DTS,将自建数据库平滑迁移到阿里云数据库上。具体操作,请参见数据库迁移方案