热衷于分享各种干货知识,大家有想看或者想学的可以评论区留言,秉承着“开源知识来源于互联网,回归于互联网”的理念,分享一些日常工作中能用到或者比较重要的内容,希望大家能够喜欢,不足之处请大家多提宝贵地意见,我们一起提升,守住自己的饭碗。
正文开始
今天主要介绍两种在CentOS 一键安装SQL Server 2019的方法。
一、离线安装
离线安装包下载地址:
https://packages.microsoft.com/rhel/7/mssql-server-2019/Packages/m/
复制
1、安装mssql
[root@localhost ~]# rpm -ivh root/mssql-server-15.0.4375.4-1.x86_64.rpm
复制
2、配置SQL Server
运行sudo opt/mssql/bin/mssql-conf setup命令,版本默认,设置SA密码
[root@localhost ~]# sudo opt/mssql/bin/mssql-conf setup
复制

3、安装命令行工具sqlcmd工具下载地址:
https://packages.microsoft.com/rhel/7/prod/Packages/m/
复制
[root@localhost ~]# rpm -ivh mssql-tools-17.10.1.1-1.x86_64.rpm、unixODBC-devel-2.3.11-1.rh.x86_64.rpm、msodbcsql17-17.10.6.1-1.x86_64.rpm、unixODBC-2.3.11-1.rh.x86_64.rpm
复制
二、联网一键安装脚本
重点来了,接下来是联网一键安装脚本,大家也可以下载下来上传一键安装。
脚本内容
#!/bin/bash
set -euo pipefail
# 检查root权限
if [[ $EUID -ne 0 ]]; then
echo "此脚本必须以root权限运行"
exit 1
fi
# 用户输入配置
read -p "请输入SA用户密码:" SA_PASSWORD
read -p "选择SQL版本 (默认: Enterprise) [Evaluation/Developer/Express/Standard/Enterprise]:" SQL_EDITION
SQL_EDITION=${SQL_EDITION:-Enterprise}
# 安装依赖
#配置本地离线yum源,iso必须挂载
cd etc/yum.repos.d/
rm -rf ./*
cat <<EOF > etc/yum.repos.d/local.repo
[centos]
name=centos
baseurl=file:///mnt
gpgcheck=0
enabled=1
EOF
mount dev/sr0 mnt
yum clean all && yum makecache
yum --setopt=assumeyes=1 install bzip2 libsss_nss_idmap gdb lsof cyrus-sasl cyrus-sasl-gssapi libatomic python3 -y
sleep 20
# 添加微软YUM源
echo "正在配置YUM源..."
cd etc/yum.repos.d/
rm -rf ./*
curl -o etc/yum.repos.d/mssql-server-2019.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2019.repo
curl -o etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo
# 刷新YUM缓存
yum clean all
yum makecache
# 安装核心组件
echo "正在安装SQL Server..."
yum install -y mssql-server
# 安装工具集
echo "正在安装工具组件..."
ACCEPT_EULA=Y yum install -y mssql-tools unixODBC-devel
# 设置环境变量
echo "配置环境变量..."
cat << EOF >> etc/profile.d/mssql.sh
export PATH="/opt/mssql-tools/bin:\$PATH"
EOF
source etc/profile.d/mssql.sh
# 初始化配置
echo "执行初始化配置..."
MSSQL_SA_PASSWORD=$SA_PASSWORD \
MSSQL_PID=$SQL_EDITION \
ACCEPT_EULA=Y \
SQL_INSTALL_AGENT=Y \
/opt/mssql/bin/mssql-conf -n setup
# 创建数据目录
echo "配置存储目录..."
DATA_DIR="/data/mssql/1433"
mkdir -p ${DATA_DIR}/{database,dbbackup,dump,tempdb}
chown -R mssql:mssql ${DATA_DIR}
chmod -R 750 ${DATA_DIR}
# 基础配置
echo "应用基础配置..."
systemctl enable mssql-server.service
systemctl restart mssql-server.service
sleep 20
/opt/mssql/bin/mssql-conf set filelocation.defaultdatadir ${DATA_DIR}/database
/opt/mssql/bin/mssql-conf set filelocation.defaultlogdir ${DATA_DIR}/database
/opt/mssql/bin/mssql-conf set filelocation.defaultbackupdir ${DATA_DIR}/dbbackup
/opt/mssql/bin/mssql-conf set filelocation.defaultdumpdir ${DATA_DIR}/dump
/opt/mssql/bin/mssql-conf set memory.memorylimitmb 3000
/opt/mssql/bin/mssql-conf set hadr.hadrenabled true
/opt/mssql/bin/mssql-conf set sqlagent.enabled true
echo "重启 SQL Server 服务..."
systemctl restart mssql-server.service
# 检查服务状态
echo "检查服务状态..."
systemctl status mssql-server.service
# 等待服务启动
sleep 10
# 配置TempDB路径
echo "配置TempDB..."
/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P "$SA_PASSWORD" << EOF
USE master;
GO
ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILENAME = '${DATA_DIR}/tempdb/tempdb.mdf');
ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev2, FILENAME = '${DATA_DIR}/tempdb/tempdb2.ndf');
ALTER DATABASE tempdb MODIFY FILE (NAME = templog, FILENAME = '${DATA_DIR}/tempdb/templog.ldf');
GO
EOF
# 应用高级配置
echo "应用高级配置..."
/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P "$SA_PASSWORD" << EOF
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'contained database authentication', 1;
EXEC sp_configure 'backup checksum default', 1;
EXEC sp_configure 'backup compression default', 1;
EXEC sp_configure 'blocked process threshold (s)', 5;
EXEC sp_configure 'max degree of parallelism', 2;
RECONFIGURE;
EOF
# 最终重启
systemctl restart mssql-server.service
echo "安装完成!"
echo "验证命令:systemctl status mssql-server.service"
echo "连接命令:sqlcmd -S localhost -U sa -P '$SA_PASSWORD'"
复制
[root@localhost ~]# chmod +x mss.sh
[root@localhost ~]# ./mss.sh
复制
用Microsoft SQL Server Management Studio远程登录,执行命令查看版本
select @@VERSION;
go
复制
接下来,我们就可以正常使用SQL Server 2019了。
参考链接:
https://mp.weixin.qq.com/s/8u9rzxnPNzbmVknqReSwKQ
https://www.cnblogs.com/muhai/p/18352906
文中的概念来源于互联网,如有侵权,请联系我删除。
欢迎关注公众号:小周的数据库进阶之路,一起交流数据库、中间件和云计算等技术。如果觉得读完本文有收获,可以转发给其他朋友,大家一起学习进步!感兴趣的朋友可以加我微信,拉您进群与业界的大佬们一起交流学习。
文章转载自青年数据库学习互助会,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。