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如下所示,表示服务启动正常。
[root@iZxxx opt]# systemctl status mssql-server ● mssql-server.service - Microsoft SQL Server Database Engine Loaded: loaded (/usr/lib/systemd/system/mssql-server.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2024-12-23 15:46:37 CST; 2h 44min ago Docs: https://docs.microsoft.com/en-us/sql/linux Main PID: 2279 (sqlservr) CGroup: /system.slice/mssql-server.service ├─2279 /opt/mssql/bin/sqlservr └─2298 /opt/mssql/bin/sqlservr
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如下所示,表示服务启动正常。
[root@iZxxx opt]# systemctl status mssql-server ● mssql-server.service - Microsoft SQL Server Database Engine Loaded: loaded (/usr/lib/systemd/system/mssql-server.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2024-12-23 15:46:37 CST; 2h 44min ago Docs: https://docs.microsoft.com/en-us/sql/linux Main PID: 2279 (sqlservr) CGroup: /system.slice/mssql-server.service ├─2279 /opt/mssql/bin/sqlservr └─2298 /opt/mssql/bin/sqlservr
安装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表示启用。1> SELECT name, is_disabled FROM sys.server_principals WHERE name IN ('sa', 'admin'); 2> GO name is_disabled -------------------------------------------------------------------------------------------------------------------------------- ----------- sa 1 admin 0
-