SQL Server是由Microsoft开发和维护的关系型数据库管理系统(DBMS),广泛用于企业和组织的数据存储和管理。本文介绍如何在Linux系统的ECS实例上部署SQL Server数据库。
前提条件
安装SQL Server
Alibaba Cloud Linux 2/3、CentOS 7/8
添加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
安装SQL Server。
sudo yum install -y mssql-server
选择所需版本并设置密码。
说明Evaluation、Developer 和 Express版本为免费许可的。
密码长度必须至少为 8 个字符,须同时包含大写字母、小写字母、数字、特殊字符中的任意三种。
sudo /opt/mssql/bin/mssql-conf setup
启动SQL Server并设置开机自启。
sudo systemctl start mssql-server sudo systemctl enable mssql-server
查看服务运行状态。
systemctl status mssql-server
如下图所示,表示服务启动正常。
Ubuntu
添加Microsoft的GPG密钥。
curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
添加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)"
安装SQL Server。
sudo apt-get update sudo apt-get install -y mssql-server
选择所需版本并设置密码。
说明Evaluation、Developer 和 Express版本为免费许可的。
密码长度必须至少为 8 个字符,须同时包含大写字母、小写字母、数字、特殊字符中的任意三种。
sudo /opt/mssql/bin/mssql-conf setup
启动SQL Server并设置开机自启。
sudo systemctl start mssql-server sudo systemctl enable mssql-server
查看服务运行状态。
systemctl status mssql-server
如下图所示,表示服务启动正常。
安装SQL Server命令行工具
Alibaba Cloud Linux 2/3、CentOS 7/8
下载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
(可选)如果安装了旧版本的
mssql-tools
,请删除所有旧的unixODBC包。sudo yum remove mssql-tools unixODBC-utf16 unixODBC-utf16-devel
使用unixODBC开发人员包安装
mssql-tools18
。sudo yum install -y mssql-tools18 unixODBC-devel
(可选)更新
mssql-tools
至最新版本。sudo yum check-update sudo yum update mssql-tools18
配置环境变量。
使
sqlcmd
和bcp
从登录会话的bash shell
进行访问。echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bash_profile source ~/.bash_profile
使
sqlcmd
和bcp
从交互式/非登录会话的bash shell
进行访问。echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc source ~/.bashrc
Ubuntu
下载公共存储GPG密钥。
curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
注册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
使用unixODBC开发人员包安装
mssql-tools18
。sudo apt-get update sudo apt-get install mssql-tools18 unixodbc-dev
(可选)更新
mssql-tools
至最新版本。sudo apt-get update sudo apt-get install mssql-tools18
配置环境变量。
使
sqlcmd
和bcp
从登录会话的bash shell
进行访问。echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bash_profile source ~/.bash_profile
使
sqlcmd
和bcp
从交互式/非登录会话的bash shell
进行访问。echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc source ~/.bashrc
连接SQL Server并禁用sa账号
首次使用sa
账号登录SQL Server后,为了确保系统安全,建议创建新账号并禁用sa
账号的登录。
连接SQL Server。
说明若要远程连接SQL Server。
实例安全组的入方向规则已放行1433端口。具体操作,请参见添加安全组规则。
将
localhost
替换为指定服务器的名称或IP地址。
首次登录账号使用
sa
,创建新账号登录时,需将sa
替换为新账号。sqlcmd -No -S localhost -U sa
参数值说明:
-S:指定服务器的名称或IP地址。
-U:用户名。
创建新账号并禁用
sa
账号。<YOUR_USER>
替换为您要设置的账号。<YOUR_PASSWORD>
替换为您要设置的密码。
创建账号。
CREATE LOGIN <YOUR_USER> WITH PASSWORD = '<YOUR_PASSWORD>';
执行GO使命令生效。
GO
分配
sysadmin
角色。ALTER SERVER ROLE sysadmin ADD MEMBER <YOUR_USER>;
执行GO使命令生效。
GO
禁用
sa
账号。ALTER LOGIN sa DISABLE;
执行GO使命令生效。
GO
查看修改是否生效。
SELECT name, is_disabled FROM sys.server_principals WHERE name IN ('sa', '<YOUR_USER>');
执行GO使命令生效。
GO
如下图所示,
is_disabled=1
表示被禁用;is_disabled=0
表示启用。