install sqlserver 2019 on ubuntu 20.04

install sqlserver 2019 on ubuntu 20.04

Prerequisites

sudo apt update

sudo apt upgrade

sudo apt install software-properties-common

sudo apt update

data disk mount

1
2
3
4
5
apt autoremove
fdisk -l
# 执行命令后,如果不存在/dev/vdb,表示您的实例没有数据盘。确认数据盘是否已挂载。
$ sudo fdisk -u /dev/vdb
# 执行后输入n开始新分区,后续均可回车使用默认值,最后输入 w 保存

运行fdisk -lu /dev/vdb命令查看新分区。

如果出现/dev/vdb1的相关信息,表示新分区已创建完成。

1
2
3
4
5
6
sudo mkfs -t ext4 /dev/vdb1 #创建文件系统
sudo cp /etc/fstab /etc/fstab.bak #备份etc/fstab
#把分区写入启动/etc/fstab,启动开机自动挂载分区
sudo echo `blkid /dev/vdb1 | awk '{print $2}' | sed 's/\"//g'` /mnt ext4 defaults 0 0 >> /etc/fstab
sudo mount /dev/vdb1 /mnt #挂载文件系统。
#如果运行df -h命令后出现新建文件系统的信息,表示文件系统挂载成功。

Install

wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

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

sudo apt-get update

sudo apt-get install -y mssql-server

sudo /opt/mssql/bin/mssql-conf setup

1
2
3
4
5
SQL Server 2019
Enterprise:HMWJ3-KY3J2-NMVD7-KG4JR-X2G8G
Enterprise Core:2C9JR-K3RNG-QD4M4-JQ2HR-8468J
Strandard:PMBDC-FXVM3-T777P-N4FY8-PKFF4
Web:33QQK-WWQNB-G6T46-C86YB-TX2PH

Change the default master database file directory location

1
2
3
4
5
6
7
8
9
10
11
12
13
cd /mnt
mkdir sqlserver
chown mssql sqlserver
chgrp mssql sqlserver
cd sqlserver
mkdir masterdatabasedir
chown mssql masterdatabasedir
chgrp mssql masterdatabasedir
/opt/mssql/bin/mssql-conf set filelocation.masterdatafile /mnt/sqlserver/masterdatabasedir/master.mdf
/opt/mssql/bin/mssql-conf set filelocation.masterlogfile /mnt/sqlserver/masterdatabasedir/mastlog.ldf
systemctl stop mssql-server #Stop the SQL Server service:
mv /var/opt/mssql/data/master.mdf /mnt/sqlserver/masterdatabasedir/master.mdf
mv /var/opt/mssql/data/mastlog.ldf /mnt/sqlserver/masterdatabasedir/mastlog.ldf

Config

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/opt/mssql/bin/mssql-conf set telemetry.customerfeedback false  #不参与用户反馈
/opt/mssql/bin/mssql-conf set memory.memorylimitmb 4096 #内存设置限制4g
cd /mnt/sqlserver
mkdir data
mkdir log
mkdir bak
mkdir dump
mkdir logs
chgrp mssql data
chgrp mssql log
chgrp mssql bak
chgrp mssql dump
chgrp mssql logs
chown mssql data
chown mssql log
chown mssql bak
chown mssql dump
chown mssql logs
/opt/mssql/bin/mssql-conf set filelocation.defaultdatadir /mnt/sqlserver/data
/opt/mssql/bin/mssql-conf set filelocation.defaultlogdir /mnt/sqlserver/log
/opt/mssql/bin/mssql-conf set filelocation.defaultbackupdir /mnt/sqlserver/bak
/opt/mssql/bin/mssql-conf set filelocation.defaultdumpdir /mnt/sqlserver/dump
/opt/mssql/bin/mssql-conf set filelocation.errorlogfile /mnt/sqlserver/logs/errorlog
systemctl restart mssql-server